3 回答

TA貢獻1830條經(jīng)驗 獲得超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()方法測試數(shù)組中的所有元素是否通過提供的函數(shù)實現(xiàn)的測試。

TA貢獻1812條經(jīng)驗 獲得超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條經(jīng)驗 獲得超2個贊
這可行。您使用原型在Array上創(chuàng)建一個方法。
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
添加回答
舉報