Имейте объект, показанный ниже, где мне нужно перебирать каждое свойство объекта, чтобы найти nextStep и отправить в массив. Мой вывод должен иметь одну переменную-массив со всеми свойствами "nextStep".
Введите:
{
"Product1": {
"stepName": "step1",
"stepOutputStatus": "normal",
"nextStep": {
"stepName": "step2",
"stepOutputStatus": "normal",
"nextStep": {
"stepName": "step3",
"stepOutputStatus": "warning",
"nextStep": {
"stepName": "step4",
"stepOutputStatus": "warning",
"nextStep": null
}
}
}
}
}
Ожидаемый результат:
[
{
"stepName": "step2",
"stepOutputStatus": "normal"
},
{
"stepName": "step3",
"stepOutputStatus": "warning"
},
{
"stepName": "step4",
"stepOutputStatus": "warning"
}
]
Я попробовал приведенный ниже код, но он возвращает ноль из-за проблемы с областью видимости:
function iterObj(obj) {
var result = [];
for (var key in obj) {
if (
obj[key] !== null &&
typeof obj[key] === "object" &&
key == "nextStep"
) {
var data = this.iterObj(obj[key]);
result.push(data);
}
}
return result;
}
iterObj(obj);