我有以下功能:
const test = (i, o) => {
if (i < 1)
return o
else
return Object.assign(o, test(i - 1, ({
value: i,
label: i
})))
}
console.log(test(5, ({})))
我除了打印:
[
{ value: '1', label: '1' },
{ value: '2', label: '2' },
{ value: '3', label: '3' },
{ value: '4', label: '4' },
{ value: '5', label: '5' }
]
但是结果是:
{ value: 1, label: 1 }
递归 Object.assign 有什么问题?
最佳答案
唯一有意义的方法是将数组作为结果。
这里有一个可能的解决方案:
function test(length) {
return [...Array(length).keys()]
.map(i => ({value: i + 1, label: i + 1}))
}
console.log(test(5));
关于javascript - Object.assign 递归不按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213207/