这个 reduce 函数是使用 spread 还是 rest?
Is this reduce function using spread or rest?
我在区分传播和休息之间有点困难。有人可以向我解释一下 reduce functions 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
的项目散布到要返回的数组中。
我在区分传播和休息之间有点困难。有人可以向我解释一下 reduce functions 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
的项目散布到要返回的数组中。