3 回答
TA贡献1830条经验 获得超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] ) // true
Array.prototype.every(来自MDN):该every()方法测试数组中的所有元素是否通过提供的函数实现的测试。
TA贡献1812条经验 获得超5个赞
!!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。
TA贡献1982条经验 获得超2个赞
这可行。您使用原型在Array上创建一个方法。
Array.prototype.allValuesSame = function() {
for(var i = 1; i < this.length; i++)
{
if(this[i] !== this[0])
return false;
}
return true;
}
这样称呼:
var a = ['a', 'a', 'a'];
var b = a.allValuesSame(); //true
a = ['a', 'b', 'a'];
b = a.allValuesSame(); //false
添加回答
举报