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,我明白你的意思,但我假设他是从浏览器控制台复制粘贴的,该控制台显示的索引就像是键一样