2017-01-13 8 views
0

配列内のオブジェクトがプロパティを含むかどうかを確認し、存在する場合はプロパティの値が一致するかどうかを調べる必要があります。関数に渡されたプロパティと値を一緒に区別する方法

プロパティと値が関数呼び出しで一緒に与えられている:

whatIsInAName(
    [ 
     { first: "Romeo", last: "Montague" }, 
     { first: "Mercutio", last: null }, 
     { first: "Tybalt", last: "Capulet" } 
    ], 
    { last: "Capulet" }); //Property: last, value: Capulet. 

関数の定義:

function whatIsInAName(collection, source) { 

私は、彼らは(値からプロパティを分離するために、とにかく見つけることができませんでした両方の内部のsource)、私は最初にプロパティが存在するかどうかを確認することができますhasOwnPropertyと場合は、値を比較します。

+0

実際のコードでは、 'source'(' last')のプロパティ名はあなたには分かりません。 – Teemu

+0

[この質問](http://stackoverflow.com/q/4260308/215552)に示されているように、 'Object.keys()'を使ってオブジェクトのすべてのプロパティを得ることができます... –

+0

'for -in'ループである。 –

答えて

0

Object.getOwnPropertyNames()を使用できます。オブジェクトのプロパティ名の配列を返します。

console.log(Object.getOwnPropertyNames(source)); 
// ['last'] 
関連する問題