Javascript 如何在对象数组中的对象内部循环数组的所有元素?
我有一个对象数组Javascript 如何在对象数组中的对象内部循环数组的所有元素?,javascript,Javascript,我有一个对象数组 myArrayOfObjects = [ 0: { title: 'title 1', ids: ['90b7f1804642', 'ffa339e9aed7'] }, 1: { title: 'test 2', ids: ['99472a9cb432', 'ec3d70ea6ef8'] } ]; 我想检查ids数组中的每个值是否与外部的id匹配。这就是我想到的: myArrayOfObjects.forEach((item,
myArrayOfObjects = [
0: {
title: 'title 1',
ids: ['90b7f1804642', 'ffa339e9aed7']
},
1: {
title: 'test 2',
ids: ['99472a9cb432', 'ec3d70ea6ef8']
}
];
我想检查ids数组中的每个值是否与外部的id匹配。这就是我想到的:
myArrayOfObjects.forEach((item, index) => {
if(item.ids[index] === this.myId) {
console.log('SUCCESS');
}
})
但它并没有遍历ids数组中的所有值。解决此问题的适当方法是什么?您需要在阵列内部的阵列上循环
myArrayOfObjects.forEach((item) => {
item.ids.forEach((id) => {
if(id === this.myId) {
console.log('SUCCESS');
}
});
})
请尝试:
myArrayOfObjects.forEach((item, index) => {
if(item.ids.includes(this.myId)) {
//or if(item.ids.indexOf(this.myId) > -1) {
console.log('SUCCESS');
}
})
这里使用的索引是forEach所在的当前项的索引,而不是ids数组中的索引。您可以在ids阵列上执行另一个forEach,或者只执行一个.includes,看起来更好,我认为:
myArrayOfObjects.forEach((item, index) => {
if(item.ids.includes(this.myId)) {
console.log('SUCCESS');
}
})
让myArrayOfObjects=[0:'value']不是创建数组的方式,您还缺少一些引号1。ArrayObject没有正确的语法。问题是OP的MyArrayOfoObject不是有效的arrayYeah,我明白你的意思,但我假设他是从浏览器控制台复制粘贴的,该控制台显示的索引就像是键一样