2016-12-29 9 views
0

キー値のペアを持つ2つのオブジェクトを含む配列があります。キーを使用してArrayオブジェクトの値を取得

Object 1 : Key: "FirstObj" Value: "xyz" 
Object 2 : Key: "SecondObj" Value: "abc" 

私はキーFirstObjで配列の値を取得する方法を知りたいですか?

は、これまでのところ、この試み:

var getKeyValue= []; 
for(var i=0;i<myChartArray.length;i++) 
{ 
    getKeyValue.push(myChartArray[i]["FirstObj"]); 

} 
+1

あなたは 'var'と' i' –

+1

https://developer.mozilla.org/en/docs/Webの間のスペースを、おそらく必要があります/ JavaScript/Reference/Global_Objects/Array/filter – Satpal

+0

'myChartArray'の作成方法を追加できますか? – moffeltje

答えて

2

あなたがArray.prototype.find使用することができます。このコードはES6機能を使用することを

let firstObj = myChartArray.find(item => item.Key === 'FirstObj'); 
console.log(firstObj.Value); 

は注意を。

0

ES6を使用しない場合は、Array.prototype.filter()を使用できます。

var yourValue = yourArray.filter(function(object) { 

    return object.Key === 'FirstObj'; 

})[0].Value; 

変数yourValueは、あなたが探していた値が含まれます:

関数は次のようになります。


また、この特定のケースを解決するだけで、反復可能でスケーラブルなソリューションを探しているわけではありません。オブジェクトと値を静的に選択することができます。これは、配列内のオブジェクトの順序を確認できることを前提としています。上記のあなたのための真であるならば、あなたはこの操作を行うことができます。var value = youArray[0].Value;

+0

これは良い解決策ですが、ほとんどの場合は理にかなっていますが、値を見つけた後に停止するのではなく、 'Array'全体をトラバースすることに注意してください。 'Array'が非常に長い場合です。 –

+0

True @ LukaJacobowitzですが、上記の特定のケースでは、最もクリーンで最短の解決策があります。 –

+0

ただし、指定されたソリューションを使用して警告を指摘することは良いです:) –

1

はSTRの答えに加え、これはあなたがES6せずにそれを行うだろうかです:

function getFirstObj(myChartArray){ 
    for(var i=0; i < myChartArray.length; i++){ 
     if (myChartArray[i].Key === 'FirstObj'){ 
      return myChartArray[i] 
     } 
    } 
} 
0

することができますそれは使用して取得filter()

var array = []; 
 
array.push({Key:"FirstObj", Value:"xyz"}); 
 
array.push({Key:"SecondObj", Value:"abc"}); 
 

 

 
var found = array.filter(function(item) { return item.Key === "FirstObj"; }); 
 

 
console.log(found[0]);

+2

これは良い解決策ですが、 'Array'が非常に長いと値を見つけた後に停止するのではなく、' Array'全体をトラバースすることに注意してください。 –

0

あなたがarray#find()を使用することができます。

var array = [{Key:"FirstObj", Value:"xyz"}, {Key:"SecondObj", Value:"abc"}], 
 
    found = array.find(function(elem) { 
 
     return elem.Key === "FirstObj"; 
 
    }); 
 

 
console.log(found);

関連する問題