개체에서 속성을 선택하기 위해 색인을 사용하려는 경우 매우 특별한 이유가없는 한 그렇게해서는 안됩니다.
다행히도 괜찮습니다. 주문을 알 필요가 없습니다. JSON 배열에서 두 개의 객체를 가져 와서 속성을 뒤섞어서 지정한 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'. 일치하는 경우 '상태'를 기록하십시오. – 31piy