首页 > 解决方案 > 将可变数量的参数传递给看起来像“function(*x)”JavaScript 的函数

问题描述

我似乎找不到这个问题的答案,因为我真的不知道这叫什么,如果有解决方案已经指向我那里。

我正在尝试从underscore.js中使用它

_.intersection(*arrays)

我知道我可以像这样使用该功能:

var intersection = _.intersection(['a','b'], ['a','c'])

然后 ['a']回来。

但是,我有可变数量的数组,所以我想做这样的事情:

var intersection = _.intersection(array for array in my_arrays)

我知道我可以这样做:

var intersection = my_arrays[0];
my_arrays.forEach(arr => intersection = _.intersection(intersection, arr) )

但这似乎并不干净。如何才能做到这一点?谢谢。

标签: javascript

解决方案


大多数现代浏览器都支持 ES6,因此您可以使用扩展运算符来执行此操作:

const my_arrays = [[1, 2], [1, 3, 4], [1, 5, 6, 7]];
dummy_intersection(...my_arrays);

function dummy_intersection(...arrays) {
  console.log(arrays[0]);
}

附带说明一下,通常认为使用 lodash 比使用 underscore 更好


推荐阅读