gpt4 book ai didi

javascript - 如何将两个不同的数组对象放在一起

转载 作者:行者123 更新时间:2023-11-29 16:48:15 24 4
gpt4 key购买 nike

这里我附上了我的 json。

"mainSteps": [
{
"id": "9b3b64b4-d8a5-46d5-b464-066dc5c45dc3",
"name": "Main Step 1",
"steps": [
{
"name": "sub step 1.1"
},
{
"name": "sub step 1.2"
}
]
},
{
"name": "Main step 2"
"steps": [
{
"name": "sub step 2.1"
},
{
"name": "sub step 2.2"
}
],
},
{
"name": "Main Step 3",
"steps": [
{
"name": "sub step 3.1"
},
{
"name": "sub step 3.2"
}
],
}
]

正在寻找类似 --> [主要步骤 1,子步骤 1.1,子步骤 1.2],[主要步骤 2,子步骤 2.1,子步骤 2.2],[主要步骤 3,子步骤 3.1,子步骤 3.2]。我花了一整天的时间来处理这个输出,但得到的输出像 [[Main Step 1,Main Step 2,Main Step 3,sub step 1.1,sub step 1.2....] 这样我得到了不同的格式,但我无法得到我提到的实际输出,有人可以澄清一下吗。

	var dataProcess = {
parentProcess:[],
subProcess:[]
};
var steps = mainData.steps; // Steps Having the Full json data
var proc = [];
$scope.getSteps = function(steps) {
for (var i=0;i< steps.length;i++) {
dataProcess.parentProcess.push(steps[i].name);
for(var j=i;j<steps[i].steps.length;j++){
dataProcess.subProcess.push(steps[i].steps[j].name);
}
}

这是我尝试过的一种方式,

最佳答案

如果你需要 ES5 语法:

var details = mainSteps.map(function(step) {
return [ step.name ].concat((step.steps || []).map(function(substep){
return substep.name;
})
});

ES6 语法:

var details = mainSteps.map(step =< [step.name].concat((step.steps || []).map(sub => sub.name));

如果你需要比一层更深的递归,你可以使用一个函数作为顶层映射器,它会调用自己。

关于javascript - 如何将两个不同的数组对象放在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38575946/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com