具有多个agruments的Javascript函数

Roh*_*mar 2 javascript ecmascript-6

我有一个将数组作为输入的函数.如何修改它以使用变量参数和数组.例如,我想要arrSum(1,2,3) === arrSum([1,2,3])返回,true即两者都应该返回6

const arrSum = arr => arr.reduce((a,b) => a+b,0)
console.log(arrSum([1,2,3]))
Run Code Online (Sandbox Code Playgroud)

Nen*_*car 10

您可以使用spread syntaxconcat.在第一种情况下,你将获得带有另一个数组的数组,在第二种情况下只是一个参数数组,但[].concat(...arr)你将把它转换为两种情况的参数数组.

const arrSum = (...arr) => [].concat(...arr).reduce((a, b) => a + b, 0)
console.log(arrSum([1, 2, 3]))
console.log(arrSum(1, 2, 3))
console.log(arrSum([1, 2, 3], [4], 5))
Run Code Online (Sandbox Code Playgroud)