gpt4 book ai didi

javascript - 通过对象验证属性?

转载 作者:搜寻专家 更新时间:2023-10-31 23:39:47 25 4
gpt4 key购买 nike

如何通过对象验证属性?我在 checkProperty

中定义了属性列表

我希望 missingFields 返回 Batch.Name is missing.

目前正在输出 [ 'Batch.Id', 'Batch.Name' ] 这是错误的。

let data = {
Batch: {
Id: 123,
},
Total: 100,
}

let checkProperty = ['Total', 'Batch.Id', 'Batch.Name'];

let missingFields = [];
checkProperty.forEach(field => {
if (!data[field]) {
missingFields.push(field);
}
});

console.log(missingFields);

最佳答案

在按点拆分后,您必须使用类似 reduce 的方法来检查嵌套值是否存在:

let data = {
Batch: {
Id: 123,
},
Total: 100,
}

let checkProperty = ['Total', 'Batch.Id', 'Batch.Name'];

let missingFields = [];
checkProperty.forEach(field => {
const val = field.split('.').reduce((a, prop) => !a ? null : a[prop], data);
if (!val) {
missingFields.push(field);
}
});

console.log(missingFields);

关于javascript - 通过对象验证属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com