2017-03-06 9 views
0

は例えば、配列は次のとおりです。オブジェクトのjavascript配列のStringキーにアクセスする方法は?

ここ
chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 

chipsArray[0]は私に{'cheetos':'good'}を与えるだろう。のは、私は次のようにこの配列を埋めましょう:

chipsArray.push({[chips]:quality}) 

しかし、今、私は私がすることはできません、この配列内の各オブジェクトにcheetosまたはdorritosキーにアクセスしようとしていること。 chipsArray[0].chipsを実行すると、私は未定義です。

オブジェクトのキーに特定の値/変数を設定するときは、角かっこで囲んでください。しかし、これらのオブジェクトのそれぞれが前述の例のような配列インデックスであるときに、後でそれらから値を抽出することはできますか?私はObject.keys(chipsArray[index])を使ってみましたが、これは特定のキーの特定の値を抽出しようとしているのに対し、これは私に鍵を与えるだけです。

Tlの;博士:キーは、このような文字列であるとき、配列内のオブジェクトのキーを抽出する方法:

chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 

答えて

1

あなたはObject.keysを使用し、最初の要素だけを得ることができます。

var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }]; 
 

 
chipsArray.forEach(function (object) { 
 
    var key = Object.keys(object)[0]; 
 
    console.log(key, object[key]); 
 
});

または

var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }], 
 
    hash = Object.create(null); 
 

 
chipsArray.forEach(function (object) { 
 
    hash[Object.keys(object)[0]] = object; 
 
}); 
 

 
console.log(hash['dorritos']['dorritos']);

+0

おかげで私は、私はこの方法を試してみました私の質問で述べました。私はキー/キーだけを望んでいません。私はアクセスする必要がある特定のキーの値が必要です。たとえば、キー '' 'dorritos''''を渡して、値' '' better''''を得たいとします。 – BobSilas

+0

@BobSilas私は、この答えが暗黙のうちに鍵を持っているときに、値を取得するのがかなり容易であることを暗示していると思います(配列へのアクセスだけです。あなたの公開鍵で) – Kaddath

0

次の関数を使用して、単一のオブジェクトを参照してオブジェクトを作成します。

Object.values(chipsArray[i]) 

私は配列のインデックスである:それは私が最も簡単な方法は、値にアクセスすることだと思いますarray

function getItemByKey (key, array) { 
    var value; 
    array.some(function (obj) { 
     if (obj[key]) { 
      value = obj[key]; 
      return true; 
     } 
     return false; 
    }); 
    return value; 
} 

もっとhere

0

Array.prototype.someについてでkeyvalueを返します。 。

出力:あなたの提案のための

> chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 
[ { cheetos: 'good' }, { dorritos: 'better' } ] 
> Object.values(chipsArray[0]) 
[ 'good' ] 
+0

これは何らかの理由で動作しません。 Object.keysは正常に動作しますが、Object.valuesはエラーをスローします。 – BobSilas

+0

する必要があります。私は出力も含めました。 –

関連する問題