我有一个嵌套对象,我想遍历特定属性并检查是否存在true。
如果找不到true,我想返回false,否则,如果有一个true实例,我想停止循环。
let object = {
firstProperty: 'foo',
secondProperty: 'bar',
objectProperty: {
value1: false,
value2: false,
value3: true
}
我只想遍历objectProperty,如果找到true,则返回true,如果找不到true,则返回false
答案 0 :(得分:1)
检查对象内部是否有任何值。
let object = {
firstProperty: 'foo',
secondProperty: 'bar',
objectProperty: {
value1: false,
value2: false,
value3: true
}
}
const res = Object.values(object.objectProperty).some(value => value === true)
console.log(res)
答案 1 :(得分:0)
好吧,一旦获得keys数组,一切就变得简单了。您可以使用Object.keys(obj)
方法获得该方法,该方法将返回给定对象的键数组。接下来,您可以简单地迭代并检查或使用lambda函数(在我们的示例中为reduce)。您要遍历一组键的节点,因此必须检查obj[key]
的特定值。
我在下面添加了一个jsfiddle和两个工作示例。
let obj = {
firstProperty: 'foo',
secondProperty: 'bar',
objectProperty: {
value1: false,
value2: false,
value3: true
}
};
// Method 1
let inner = obj.objectProperty;
let ans = Object.keys(inner).reduce((a, e) => inner[e] || a, false);
console.log(ans);
// Method 2
let found = false;
Object.keys(inner).forEach(key => {
if (inner[key])
found = true;
});
console.log(found);
干杯!