インデックスを使用してオブジェクトからプロパティを選択しようとしている場合は、非常に具体的な理由がない限り、存在してはいけません。
幸い、それは問題ありません。注文を知る必要はありません。 JSON配列から2つのオブジェクトを取り出し、プロパティをスクランブルし、指定したkey/valを含むオブジェクトを返す関数を書きました。
あなたの質問はちょっと難しいですが、これはあなたにアイデアを与えると思います。
<script type="text/javascript">
let arr = [
{
"attributes":{
"friendly_name":"door"
},
"entity_id":"sensor.frontdoor",
"last_changed":"2016-12-31T11:15:59.395808+00:00",
"last_updated":"2016-12-31T11:15:59.395808+00:00",
"state":"closed"
},
{
"last_changed":"2016-12-31T11:15:59.395808+00:00",
"state":"closed",
"attributes":{
"friendly_name":"door"
},
"entity_id":"sensor.backdoor",
"last_updated":"2016-12-31T11:15:59.395808+00:00"
}
];
function findKey (theKey, theVal) {
let reduced = arr.filter (d => {
return d [ theKey ] === theVal;
});
return reduced;
}
let targets = findKey ('entity_id', 'sensor.backdoor');
targets.forEach (d => {
// This check is a little naive, but should give you the idea
if ('state' in d) {
console.log (d.state);
}
});
</script>
あなたは、配列をループするために必要な、より速いノートで質問 –
にあなたのコードを追加し、かどうかを確認'entity_id'です。一致する場合は、 'state'を記録します。 – 31piy