我有:
var dataCategories = [];
for(var i = 0, len = 3; i < len; i++) {
dataCategories.push({name: i, categories: [] })
}
console.log(dataCategories)
/* Result:
[{name: 0, categories: [] }, {name: 1, categories: [] }, {name: 2, categories: [] }]
*/
但我需要一个像下面一样的结果
[{name: 0,
categories: [{
name: 1,
categories: [{
name: 2,
categories: []
}]
}]
}]
如何获得级联结果?
考虑使用reduceRight
,在0到2:的数组上迭代
const arr = [0, 1, 2];
const output = arr.reduceRight(
(categories, name) => [{ name, categories }],
[]
);
console.log(output);
或者,对于任意数字:
const length = 3;
const arr = Array.from({ length }, (_, i) => i);
const output = arr.reduceRight(
(categories, name) => [{ name, categories }],
[]
);
console.log(output);