javascript - If 语句使用每个数组键

标签 javascript jquery arrays

如何在不手动编写每个 key 的情况下获得以下内容?我希望 if 语句包含每个 colors 键。

if (colors[0].val.join() === colors[colors[0].next].orig.join() &&
    colors[1].val.join() === colors[colors[1].next].orig.join() &&
    colors[2].val.join() === colors[colors[2].next].orig.join() &&
    colors[3].val.join() === colors[colors[3].next].orig.join() &&
    colors[4].val.join() === colors[colors[4].next].orig.join())
{ }

我能想到的是:

colors.forEach(function(k, i) {
    colors[i].val.join() === colors[colors[i].next].orig.join();
});

最佳答案

使用 .every() method

if (colors.every(function(el) { return el.val.join() === colors[el.next].orig.join(); })) {
    // do something
}

它适用于除 IE < 9 之外的所有浏览器。

如果你需要旧的 IE 支持,polyfill 方法(一个 polyfill 在 MDN 文档中可用)

关于javascript - If 语句使用每个数组键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28664093/

相关文章:

javascript - 使用 jQuery 从另一个页面获取 href

javascript - 通过检测 Dom 是否准备好来移除阻塞脚本?

ruby-on-rails - 从 ruby​​ 中的数组中删除尾随的 nil 值

arrays - 枚举由字典元素组成的数组时,无法修改字典值

c# - 在 CLR C++ 中用数组初始化 List<T>?

javascript - 在javascript中分割数字以不同的字体大小显示小数点之后和之前的数字

javascript - D3.js 缩放从数据集中返回错误值

ajax - 在ajax加载的页面中使用ajax

javascript - 将值从 ajax 传递到 struts 标签

javascript - Internet Explorer 8 中的 Jquery,无法将多行 HTML 附加到现有的 DIV,但在其他浏览器中工作正常