我有一个对象数组
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数组中的所有值。解决此问题的合适方法是什么?
答案 0 :(得分:1)
您使用的index
是forEach所在的当前项目的索引,而不是ids数组中的索引。您可以在该ids数组上执行另一个forEach,或者只是.includes看起来更好,我认为:
myArrayOfObjects.forEach((item, index) => {
if(item.ids.includes(this.myId)) {
console.log('SUCCESS');
}
})
答案 1 :(得分:0)
您需要遍历数组内部的数组
myArrayOfObjects.forEach((item) => {
item.ids.forEach((id) => {
if(id === this.myId) {
console.log('SUCCESS');
}
});
})
答案 2 :(得分:0)
请尝试:
myArrayOfObjects.forEach((item, index) => {
if(item.ids.includes(this.myId)) {
//or if(item.ids.indexOf(this.myId) > -1) {
console.log('SUCCESS');
}
})