2016-11-28 12 views
-1

2つの配列を比較するにはどうすればよいですか?特に、最初の配列が複数のパラメータを持つオブジェクトの場合はどうしますか?オブジェクトを持つ配列を比較してください

truthCheck([ 
    { "user": "Tinky-Winky", "sex": "male" }, 
    { "user": "Dipsy", "sex": "male" }, 
    { "user": "Laa-Laa", "sex": "female" }, 
    { "user": "Po", "sex": "female" } 
], "sex"); 

私は第二配列は最初のものの上に存在するかどうかをチェックし、最初の配列をループを考えました。答えを出力します。私がこれを行うたびに、空の配列を取得するか、場合によっては数字0,1,2,3を取得します。

+3

2つのパラメータがあります。第1のパラメータはオブジェクトの配列で、第2のパラメータは文字列です。私はあなたが配列内のオブジェクトをループしようとしているのですが、2番目のパラメータが存在するかどうかチェックしようとしていますか? –

+0

それは正しいですし、それらが存在する場合、私はそれらを印刷したいです – iceveda06

+1

だから...あなたは2つの配列を比較していないのですか?それはあなたのタイトルが言っているものなので。あなたの質問を編集してタイトルと最初の文章を更新したいかもしれません。 –

答えて

0

私はミックスに私の実装を追加します - 他の人のようにそれはarray.forEachを使用していますが、私はそれは、フィルタリングを行うには、論理的に簡単だと思う(「性別」の存在をチェック).filterに( )、結果に.forEach()を実行します。私の実装はES6ですが、古い匿名関数の構文も使用できます。

function truthCheck(arrayToCheck, propertyToCheck) { 
    arrayToCheck.filter(elem => elem.hasOwnProperty(propertyToCheck)).forEach(elem => console.log(elem[propertyToCheck])); 
} 
0

私の前提が正しい場合は、指定されたプロパティが配列内にループしているかどうかを確認できますアイテム

var teleTubbies = [{"user": "Tinky-Winky", "sex": "male"}, {"user": "Dipsy", "sex": "male"}, {"user": "Laa-Laa", "sex": "female"}, {"user": "Po", "sex": "female"}]; 
var searchProperty = "sex"; 

function truthCheck(arrayToCheck, propertyToCheck) { 
    arrayToCheck.forEach(function(item) { 
    if(item.hasOwnProperty(propertyToCheck)) 
     console.log(item[propertyToCheck]) 
    }); 
} 

truthCheck(teleTubbies, searchProperty); 
0

フィルタ指定されたプロパティが(in演算子を使用して)オブジェクト上に存在することを条件に基づいて、オブジェクトの入力配列。

function truthCheck(objects, p) { 
    return objects.filter(e => p in e); 
} 
関連する問題