函数调用时如何将数组元素作为单个参数传递?
正确解法:使用扩展运算符
... 你之前对func(...arr)的理解有误,它完全符合函数的参数要求——扩展运算符会把数组的每个元素拆解成独立参数传递给函数,效果和手动写func(var1, var2, var3)完全一致。
举个实际示例验证:
const arr = ["var1", "var2", "var3"]; function func(a, b, c) { console.log(a, b, c); // 输出:var1 var2 var3 } func(...arr); // 正确调用,等价于func("var1", "var2", "var3")
而你尝试的func(arr.map((elem) => elem))确实无效,因为map返回的仍是一个数组,本质还是给函数传了单个数组参数,不符合要求。
至于手动解构赋值的方式,完全是多余的——扩展运算符不管数组有多少元素,都能一次性把所有元素拆成独立参数传入函数,这就是最简洁高效的方案。
内容的提问来源于stack exchange,提问作者noxi3534
相关产品推荐
相关产品推荐

