javascript - 如何在 for-in 循环中使用 If 语句?

标签 javascript arrays object for-loop multidimensional-array

只是尝试更熟悉数组中的嵌套对象和 for in 循环。一切都按我预期的那样工作,直到我插入一个 if 语句,然后我才没有在控制台中得到预期的 true 输出结果。

我已经尝试了各种点/括号符号的组合来访问。

const animals = [
  {
    species: 'Pets',
    list: [
      'Dog',
      'Cat',
      'Rabbit',
      'Gerbil',
      'Turtle',
      'Canary'
    ]
  },
  {
    species: 'Wild',
    list: [
      'Bear',
      'Lion',
      'Deer',
      'Tiger',
      'Cougar',
      'Elk',
      'Beaver',
      'Elephant',
      'Rhino'
    ]
  },
  {
    species: 'Marine',
    list: [
      'Shark',
      'Salmon',
      'Squid',
      'Octopus',
      'Jellyfish'
    ]
  }
];

for(let i = 0; i < animals.length; i++) {
  for(let prop in animals[i]) {
    console.log(animals[i][prop])
    if(animals[i][prop] === 'Shark'){
       console.log(true)
    }
  }
}

如果值等于“Shark”,我想控制台日志为真

最佳答案

你还需要迭代数组

const animals = [{ species: 'Pets', list: ['Dog', 'Cat', 'Rabbit', 'Gerbil', 'Turtle', 'Canary'] }, { species: 'Wild', list: ['Bear', 'Lion', 'Deer', 'Tiger', 'Cougar', 'Elk', 'Beaver', 'Elephant', 'Rhino' ] }, { species: 'Marine', list: ['Shark', 'Salmon', 'Squid', 'Octopus', 'Jellyfish'] }]

for (let i = 0; i < animals.length; i++) {
    for (let prop in animals[i]) {
        // console.log(animals[i][prop]);
        for (var item of animals[i][prop]) {
            if (item === 'Shark') {
                console.log(true);
            }
        }
    }
}

一种较短的方法是迭代 animals,然后迭代 list

const animals = [{ species: 'Pets', list: ['Dog', 'Cat', 'Rabbit', 'Gerbil', 'Turtle', 'Canary'] }, { species: 'Wild', list: ['Bear', 'Lion', 'Deer', 'Tiger', 'Cougar', 'Elk', 'Beaver', 'Elephant', 'Rhino' ] }, { species: 'Marine', list: ['Shark', 'Salmon', 'Squid', 'Octopus', 'Jellyfish'] }]

animals.forEach(({ list }) => {
    if (list.includes('Shark')) {
        console.log(true);
    }
});

关于javascript - 如何在 for-in 循环中使用 If 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53991132/

相关文章:

javascript - 让 Chrome 应用程序与 Chrome 扩展程序交互

javascript - jQuery 获取 "event invoking"元素

object - 为什么要进行 obj.文件包含法线

javascript - 如何只显示包含对象的数组?

java - 如何从另一个类访问对象变量?

javascript - 这不是应用程序(*)漏洞吗? (JavaScript 和 HTTP)

javascript - Canjs 不路由

javascript - 如何设计 react 选择组件的箭头样式?

javascript - 选择排序后查找排序数组中数字位置的代码不稳定?

javascript - 查找 bool 值 JavaScript 对象数组的总和