2016-08-03 3 views
4

配列には複数の値を含めることができます。私はすべての値が同じか違うかどうかチェックしたい。配列をチェックする方法は、Jqueryで異なる値または同じ値を含む

var a = [2, 4, 7, 2, 8]; // all values are not same 
var b = [2, 2, 2, 2, 2]; // all values are same 

あなたはこのように試みることができる私はjqueryの中でそれを確認することができますどのように

+3

可能な重複[二つの配列が同じ値を持っているかどうかを知る方法](http://stackoverflow.com/questions/6229197/2つの配列が同じ値であることを知る方法)、[2つの配列がJavaScriptと等しいかどうかをチェックする方法](http://stackoverflow.com/questions/3115982/) 2つの配列をチェックする方法はjavascriptと同じです) –

+0

簡潔にするためにunderscore.jsを使用して_difference([2,4,7,2,8]、[2 、2,2,2,2 ]); – sunil

答えて

2

var a = [2, 4, 7, 2, 8]; 
 
var b = [2, 2, 2, 2, 2]; 
 

 
    function myFunc(arr){ 
 
     var x= arr[0]; 
 
     return arr.every(function(item){ 
 
      return item=== x; 
 
     }); 
 
    } 
 

 
alert(myFunc(a)); 
 
alert(myFunc(b));

それが配列の削減使用可能ですArray.prototype.every()

+1

'arr [0] === arr [0]をチェックする必要はないので、私はちょっと洗練されたものをお勧めします:' return arr.slice(1).every(v => arr [0]); ' ] ';それは最高でマイクロ最適化です。配列をスライスするのにかかる時間が、最初の配列要素を不必要に比較するよりも時間がかかる場合は、最適化されない可能性があります。 –

+1

良い答え。!! –

+1

うわー、素晴らしいコード、うまく動作します。ありがとう@ラフル –

0

チェックこのソリューション

function arrayUnique(array) 
{ 
    function onlyUnique(value, index, self) { 
     return self.indexOf(value) === index; 
    } 

    var unique = array.filter(onlyUnique); 

    return (unique.length == 1); 
} 
// usage example: 
var a = [2, 3, 2, 2, 2]; 
console.log('Array is unique : ' + arrayUnique(a)); 
// Array is unique : false 

var b = [2, 2, 2, 2, 2]; 
console.log('Array is unique : ' + arrayUnique(b)); 
// Array is unique : true 
0

のためのMDNを参照してください:

Array.prototype.areAllTheSame = function() { 
    if(!this.length) 
     return false 
    return this.reduce(function(p, c) { 
     return [c, c==p[0] && p[1]] 
    }, [this[0], true])[1] 
} 

var arr = [1,2,3,4] 
var arr2 = [2,2,2,2] 

arr.areAllTheSame() //-->false 
arr2.areAllTheSame() //-->true 
0

あなたはjQueryの

var test= $(a).not(b).length === 0; 
から not機能を使用して1行でこれを行うことができます

JsFiddle

0

あなたはSetへのアクセス権を持っている場合:

var a = [2, 4, 7, 2, 8]; 
 
var b = [2, 2, 2, 2, 2]; 
 

 
function onlyOneValue(arr){ 
 
    return [...new Set(arr)].length < 2; 
 
} 
 

 
document.write(onlyOneValue(a) + '<br>'); 
 
document.write(onlyOneValue(b));

関連する問題