const example = ["1", "se", "thi", "four"].reduce((acc, el) => {
acc = el + '!!!' + el.length + '!!!';
return acc
},
[]);
console.log(example);
在输出中,我们有four!!!4!!!
虽然我希望在列表中看到所有更改的元素。
据我所理解
,
[]
正是这部分代码负责将结果累积到哪里。
我输入了一个列表并期望更改的项目在那里,为什么它们不在那里?
因为reduce不是那样工作的。根据文档:
array.reduce(回调[,初始值])
callback(accumulator, element)是一个回调函数,它
accumulator依次获取先前的结果和数组中的每个元素element。initialValue - 的初始值
accumulator,如果未设置,则它等于数组的第一个元素,并且数组的第二个元素立即作为元素传递。如果您想返回数组中的所有内容,那么您必须自己添加它们。
或者在这种情况下使用 Map。