Rumah > Soal Jawab > teks badan
Bagaimanakah js menentukan bahawa semua elemen tatasusunan adalah sama
phpcn_u15822017-05-19 10:44:28
Menilai bahawa semua adalah sama adalah sama dengan menilai bahawa salah seorang daripada mereka tidak sama,
function isAllEqual(array){
if(array.length>0){
return !array.some(function(value,index){
return value !== array[0];
});
}else{
return true;
}
}
phpcn_u15822017-05-19 10:44:28
Penyoal tidak mengatakan ia adalah tatasusunan mudah; jika elemen tatasusunan termasuk Objek, dll., maka jawapan di atas pada dasarnya akan gagal. Kemudian masalah sebenarnya menjadi bagaimana untuk menilai bahawa dua Objek adalah sama, dan kemudian ia melibatkan rekursi... Pendek kata, ia tidak semudah itu, jadi saya tidak akan pergi ke butiran tentang kod mesin cakar.
给我你的怀抱2017-05-19 10:44:28
function compare(array1, array2)
{
(array1.length == array2.length) && array1.every(function(element, index) {
return element === array2[index];
})
}
漂亮男人2017-05-19 10:44:28
function test (arr) {
return arr.reduce((o, item) => (o.result = o.result && item === o.prev, o.prev = item, o), { result: true, prev: arr[0] }).result
}
曾经蜡笔没有小新2017-05-19 10:44:28
Bukankah ini sesuatu yang boleh diselesaikan dengan hanya satu kitaran?
var equals=function(arr){
var bool=true;
for(var i=1,len=arr.length;i<len;i++){
if(arr[i]!==arr[0]){bool=false}
}
return bool
}
大家讲道理2017-05-19 10:44:28
Jika anda ingin mempertimbangkan objek, anda boleh merujuk kepada isEqual Lodash
Hanya jenis ringkas sahaja yang dipertimbangkan:
var arr = [/*elements*/];
var isAllEqual = new Set(arr).size === 1;