Javascript доступ к вложенным элементам

У меня есть массив, который выглядит примерно так:

result = {
   akch_generation: 11841,
   akch_chassis: [{
    akch_sp: [{
        akch_faulted: false,
        akch_present: true,
        akch_fru: 'hc:///chassis=0/sp=0'
    }],
    akch_fan: [{
   ....
 }

И я хочу получить значение akch_faults, но я не могу понять, как.

Я старался:

hardware.config().akch_chassis.akch_sp => result = undefined

hardware.config().akch_chassis.akch_sp.akch_faulted =>
error: illegal argument expression: "hardware.config().akch_chassis.akch_sp has
   no properties"

где hardware.config() - это команда, которую я запускаю, чтобы получить массив результатов.

Я могу получить только так глубоко, как akch_chassis...

Кто-нибудь может мне помочь?

3 ответа

Решение

Прежде всего result это не массив, это объект.

Проблема в том, что ваши вложенные объекты находятся внутри массивов, поэтому для доступа к свойству akch_faulted вам нужно написать следующее:

result.akch_chassis[0].akch_sp[0].akch_faulted

Это решение, чтобы получить значение в JavaScript.

var myvalue = result.akch_chassis [0].akch_sp [0].akch_faulted

<script type="text/javascript" language="javascript" src="my.json"></script>
<script>
window.onload = function(){
var myvalue = result.akch_chassis[0].akch_sp[0].akch_faulted;
console.log(myvalue);
    }
</script>

Это может быть полезно,

  for(var i=0;i<=result.akch_chassis.length;i++){
     for(var j=0;j<=result.akch_chassis[i].akch_sp.length;j++){
       var value=result.akch_chassis[i].akch_sp[j].akch_faulted;
     }
    }
Другие вопросы по тегам