如何在对象数组中的对象内部遍历数组的所有元素?

时间:2018-10-08 19:38:46

标签: javascript

我有一个对象数组

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数组中的所有值。解决此问题的合适方法是什么?

3 个答案:

答案 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');
  }
})