2012-05-03 19 views
1
ためのJavaScript関数

可能性の重複:
比較配列

Using jQuery to compare two arrays

Iが配列別の配列の全て値が含まかどうかを決定するためにJavaScriptやjQueryの機能を必要とします。 2番目の配列は最初の配列よりも多くの値を持つことができます。

trueまたはfalseのいずれかを返します。例えば。

comparing array1 = [1,2,3] and array2 = [1,2]  should return false 

comparing array1 = [1,2,3] and array2 = [1,1,2] should return false 

comparing array1 = [1,2,3] and array2 = [3,2,1] should return true 

comparing array1 = [1,2,3] and array2 = [1,2,1,3] should return true 

パフォーマンスは関係ありません。ありがとう!

+0

http://api.jquery.com/jQuery.inArray/ –

+0

同様の質問でhttp ://stackoverflow.com/questions/1773069/using-jquery-to-compare-two-arraysこれらの答えは私に役立ちました。 – GrantVS

答えて

1

第1の配列の各要素をチェックし、第2の配列に存在するかどうかを調べます。

NB。これは純粋なjavascriptですが、jQueryでもっと簡単な方法かもしれません。

var notFound = false; 

for(var i = 0, len = firstArray.length; i < len; i++){ 
    if(secondArray.indexOf(firstArray[i]) === -1) 
    { 
     notFound = true; 
     break; 
    } 
} 

if(notFound) 
{ 
    .... 
} 
+0

うん、これは動作します。ありがとう! –

+0

ようこそ。 – Rene

+0

私が発見したのは、プログラミングのスキルが高い人にとって明らかなことは、配列の値が異なる場合はfalseを返すということです。両方の配列に数字が含まれていることを確認するために、2番目の配列を作成する際にparseFloat()変換を追加する必要がありました。 –

0

更新:が速すぎて、質問を読んでいた、唯一の次は同じ順序であれば動作します

function same_elements(array1, array2){ 
    var result = true; 
    $(array1).each(function(index, value) { 
    if (value != array2[index]) {result = false}; 
    }); 
    return result; 
} 
+0

これはarray1 = [1,2,3]とarray2 = [1,2,1,3] –

+0

ええ、順序付けられていないケースを実現しました – snies