キーと値のペアを持つ配列があります。
var array=[
{Key:"Name",Value:"Sam" },
{Key:"Marks",Value:"50"},
{Key:"Subject",Value:"English"},
];
'Subject'Value
であるオブジェクトをKey
変数にプッシュしたい。Valueにアクセスする方法を確認しようとしましたが、最初のステップで失敗しました。これはどのように行うことができますか?
for (var key in array[0])
{
console.log(key[i].Value); //error: Cannot read property 'Value' of undefined
}
'Subject'Value
であるオブジェクトをKey
変数にプッシュするにはどうすればよいですか?
あなたのfor-in
ループが上にあるarray[0]
オブジェクトなので、key
そのオブジェクトのキー(プロパティ名)です。したがって、この:
console.log(key[i].Value);
する必要があります
console.log(array[0][key].Value);
しかし、あなたがやりたいと言ったことを考えると、私はfor-in
ループの必要性を見ていません:
キーが「件名」であるオブジェクトの値を変数にプッシュしたい。
Array#find
(これはES2015の新機能-別名ES6-ですが、簡単にシム/ポリフィルされます)はこれに役立ちます:
var entry = array.find(function(e) { return e.Key === "Subject"; });
if (entry) {
theVariable = entry.Value;
}
ES2015を使用している場合(今のところ、まだトランスパイルを意味します)、矢印関数を使用してより簡潔にすることができます。
let entry = array.find(e => e.Key === "Subject");
if (entry) {
theVariable = entry.Value;
}
しかし、ES5以前のものに固執したい場合は、次のようなものがありArray#some
ます。
array.some(function(e) {
if (e.Key === "Subject") {
theVariable = e.Value;
return true; // stops the "loop"
}
});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加