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;
}
}