检查数组中的每个项目在 JavaScript 中是否相同

新手上路,请多包涵

我需要测试数组中的每个项目是否彼此相同。例如:

 var list = ["l","r","b"]

应评估为 false ,因为每个项目都不相同。另一方面:

 var list = ["b", "b", "b"]

应评估为 true 因为它们都是相同的。实现这一目标的最有效(速度/资源)方式是什么?

原文由 Nick 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 178
2 个回答
function identical(array) {
    for(var i = 0; i < array.length - 1; i++) {
        if(array[i] !== array[i+1]) {
            return false;
        }
    }
    return true;
}

原文由 Dogbert 发布,翻译遵循 CC BY-SA 3.0 许可协议

在 ES5 中,你可以这样做:

 arr.every(function(v, i, a) {
   // first item: nothing to compare with (and, single element arrays should return true)
   // otherwise:  compare current value to previous value
   return i === 0 || v === a[i - 1];
});

.every 也短路。

原文由 pimvdb 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题