【发布时间】:2019-08-05 11:29:32
【问题描述】:
如果我需要遍历每个对象属性以找到 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"
}
]
我尝试了以下代码,但由于范围问题,它返回 null:
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);
【问题讨论】:
标签: javascript arrays javascript-objects