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

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

当前回答

这可能会起作用,你也可以使用注释代码,这也适用于给定的场景。

函数isUniform () { var arrayToMatch = [1,1,1,1,1]; var temp = arrayToMatch[0]; console.log(临时); /*返回arrayToMatch.every(函数(检查){ 返回检查== temp; }); * / var bool; arrayToMatch.forEach(函数(检查){ Bool =(check == temp); }) console.log (bool); } isUniform ();

其他回答

更新2022版本:使用Set()

     let a = ['a', 'a', 'b', 'a'];
     let b = ['a', 'a', 'a', 'a'];
     const check = (list) => {
        const setItem = new Set(list);
        return setItem.size <= 1;
     }

     const checkShort = (list) => (new Set(list)).size <= 1        
     
      check(a); // false;
      check(b); // true;
      checkShort(a); // false
      checkShort(b); // true

更新新的解决方案:检查索引

 let a = ['a', 'a', 'b', 'a'];
 let b = ['a', 'a', 'a', 'a'];
 let check = (list) => list.every(item => list.indexOf(item) === 0);
 check(a); // false;
 check(b); // true;
   

在ES6更新: 使用列表。每一种方法都是最快的:

 let a = ['a', 'a', 'b', 'a'];
 let check = (list) => list.every(item => item === list[0]);
   

旧版本:

      var listTrue = ['a', 'a', 'a', 'a'];
      var listFalse = ['a', 'a', 'a', 'ab'];

      function areWeTheSame(list) { 
         var sample = list[0];
         return (list.every((item) => item === sample));
      }

下划线_。isEqual(object, other)函数似乎可以很好地用于数组。当它检查是否相等时,数组中项目的顺序很重要。见http://underscorejs.org/ # isEqual。

通过加入数组创建一个字符串。 通过重复给定数组的第一个字符创建字符串 匹配两个字符串

函数checkArray(数组){ 返回array.join("") == array[0].repeat(array.length); } console.log('数组:(,,,):”+ checkArray ([' a ', ' ', ' ', ' '))); console.log('数组:[a, a, b, a]: ' + checkArray ([' a ', ' ', ' b ', ' ')));

这样你就完成了!

我认为最简单的方法是创建一个循环来比较每个值和下一个值。只要“链”中有断点,它就会返回false。如果第一个元素等于第二个元素,第二个元素等于第三个元素,以此类推,那么我们可以得出这样的结论:数组中的所有元素彼此相等。

给定一个数组data[],那么你可以使用:

for(x=0;x<data.length - 1;x++){
    if (data[x] != data[x+1]){
        isEqual = false;            
    }
}
alert("All elements are equal is " + isEqual);

你可以计算数组中不同值的数量,如果这个值是1,所有的条目都是相同的。

例子:

array = np.array([1, 2, 2, 3, 3])
set(array) # this gives the different values present in the array (1,2,3)
len(set(array)) # this returns 3, 3 different values in the array