检查数组的所有值是否相等

我需要找到所有值都相等的数组。最快的方法是什么?我应该遍历它并只是比较值吗?


['a', 'a', 'a', 'a'] // true

['a', 'a', 'b', 'a'] // false


HUWWW
浏览 1051回答 3
3回答

牛魔王的故事

const allEqual = arr => arr.every( v => v === arr[0] )allEqual( [1,1,1,1] )  // true或单线:[1,1,1,1].every( (val, i, arr) => val === arr[0] )   // trueArray.prototype.every(来自MDN):该every()方法测试数组中的所有元素是否通过提供的函数实现的测试。

ABOUTYOU

!!array.reduce(function(a, b){ return (a === b) ? a : NaN; });结果:var array = ["a", "a", "a"] => result: "true"var array = ["a", "b", "a"] => result: "false"var array = ["false", ""] => result: "false"var array = ["false", false] => result: "false"var array = ["false", "false"] => result: "true"var array = [NaN, NaN] => result: "false" 警告:var array = [] => result: TypeError thrown这是因为我们没有传递initialValue。因此,您不妨先检查一下array.length。

临摹微笑

这可行。您使用原型在Array上创建一个方法。Array.prototype.allValuesSame = function() {&nbsp; &nbsp; for(var i = 1; i < this.length; i++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; if(this[i] !== this[0])&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return false;&nbsp; &nbsp; }&nbsp; &nbsp; return true;}这样称呼:var a = ['a', 'a', 'a'];var b = a.allValuesSame(); //truea = ['a', 'b', 'a'];b = a.allValuesSame(); //false
打开App,查看更多内容
随时随地看视频慕课网APP