我有一个数组,内部有一组对象,如何遍历它们并检查哪个对象的状态为true?
menuItems: [
{
text1: 'Apple',
status: false,
subItems: []
},
{
text2: 'Orange',
status: false,
subItems: []
},
{
text3: 'Banana',
status: true,
subItems: []
}
]
我尝试过这样的事情:-
if(menuItems.forEach(active) === 'false') {
then('do something!!!')
}
答案 0 :(得分:1)
您有两种选择。在顶层,您可以在传递给forEach
的函数中添加if语句:
menuItems.forEach((item) => {
if (item.status) {
console.log('Do something') // only logs when item.status is true
}
})
请注意,即使在修复语法后,示例代码menuItems.forEach(active) === 'false')
也无法正常工作,因为示例数据中的status
是布尔值,并且您尝试将其与带有{的字符串进行比较{1}}。
尽管如此,回到主要问题:您可以使用===
方法首先删除所有不的状态为true的项目,而不是使用if语句:< / p>
filter
答案 1 :(得分:0)
一个例子:
const menuItems = [
{
text: 'Apple',
status: false,
subItems: []
},
{
text: 'Orange',
status: false,
subItems: []
},
{
text: 'Banana',
status: true,
subItems: []
}
];
menuItems.forEach(menuItem => { if(menuItem.status) { console.log(menuItem.text) } });
阅读MDN!
https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach