我在区分传播和休息方面遇到了一些麻烦。有人可以向我解释在reduce函数的return语句中是否使用了spread或rest?
这是我不明白的:
return [currentValue, ...accumulator]
代替
let str = 'KING';
const reverseStr = str => {
return str
.split('')
.reduce((accumulator, currentValue) => {
return [currentValue, ...accumulator];
}, [])
.join('');
};
最佳答案
Rest语法总是创建(或分配给)变量,例如:
const [itemOne, ...rest] = arr;
// ^^ created ^^^^
传播语法只会导致另一个数组(或对象)表达式-它不会在变量中添加任何内容。在这里,您正在使用扩展语法来创建一个新数组,该数组由
currentValue
和accumulator
的值组成。return [currentValue, ...accumulator];
就好像
return [currentValue, accumulator[0], accumulator[1], accumulator[2] /* ... */];
您正在将
accumulator
的项目散布到要返回的数组中。关于javascript - 这是使用传播还是休息来减少功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60680428/