Ren*_*mer 4 javascript arrays object
给定一个数组,如 [‘a’, ‘b’, ‘c’]
我怎样才能得到一个对象
{
current: ‘a’,
next : {
current: ‘b’,
next: {
current: ‘c’
}
}
}
Run Code Online (Sandbox Code Playgroud)
您可以为此创建一个递归函数:
const data = ['a', 'b', 'c'];
function createObj([current, ...rest]) {
const result = { current };
if (rest.length) result.next = createObj(rest);
return result;
}
console.log(createObj(data));Run Code Online (Sandbox Code Playgroud)
的[current, ...rest]是一个单一的解构数组参数。
您可以使用Array.reduceRight()来创建对象:
const arr = ['a', 'b', 'c']
const obj = arr.reduceRight((acc, o) => ({
current: o,
...acc && { next: acc }
}), null)
console.log(obj)Run Code Online (Sandbox Code Playgroud)