gpt4 book ai didi

javascript - 平面数组到多维数组 (JavaScript)

转载 作者:行者123 更新时间:2023-12-04 17:54:34 24 4
gpt4 key购买 nike

我有以下数组:

var sampleArray = [
"CONTAINER",
"BODY",
"NEWS",
"TITLE"];

我想要以下输出:

var desiredOutput = [{
"CONTAINER": [{
"BODY": [{
"NEWS": [{
"TITLE": []
}]
}]
}]
}];

如何在 JavaScript 中实现这一点?

已经尝试过递归循环,但它不起作用,给我未定义。

    dataChange(sampleArray);
function dataChange(data) {
for (var i = 0; i < data.length; i++) {
changeTheArray[data[i]] = data[i + 1];
data.splice(i, 1);
dataChange(changeTheArray[data[i]]);
}
}

谢谢

最佳答案

这会在一行中完成您的要求,并且没有其他变量:

let desiredOutput = sampleArray.reduceRight((obj, key) => [ { [key]: obj } ], []);

reduceRight调用,从数组的右手端开始,逐步累积当前数据(以 [] 的初始值作为种子)作为新对象中单个键的值 { [key] : _value_ }该对象本身就是数组中的单个条目 [ ... ] .

关于javascript - 平面数组到多维数组 (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46956309/

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