Concat和apply在JavaScript中的应用

Concat和apply在JavaScript中的应用,javascript,ecmascript-6,apply,Javascript,Ecmascript 6,Apply,以下是我所看到的答案: 代码- var result = [].concat.apply([], strs1.map(function(str1) { return strs2.map(function(str2) { return str1 + '-' + str2; }); })); 除了这里使用的apply之外,大多数事情我都很清楚。请让我知道此方法在这里做什么,以及应用方法的第一个[]参数 我已经看过了,但它看起来太复杂了。你读过了吗?你提供的MDN链接对它进行了足够详

以下是我所看到的答案:

代码-

var result = [].concat.apply([], strs1.map(function(str1) {
  return strs2.map(function(str2) {
    return str1 + '-' + str2;
  });
}));
除了这里使用的
apply
之外,大多数事情我都很清楚。请让我知道此方法在这里做什么,以及应用方法的第一个
[]
参数


我已经看过了,但它看起来太复杂了。

你读过了吗?你提供的MDN链接对它进行了足够详细的描述。任何函数都可以通过
call()
apply()
调用。本例返回单个展平数组;如果它是
[].concat(strs1.map…
,它将返回一个由其他三个数组组成的数组(每个
strs1
值对应一个数组)。FWIW,在ES6中,您可以编写
[].concat(…strs1.map(str1=>strs2.map(str2=>`${str1}-${str2}')instead@FelixKlingThx我将通过第一个链接“但它看起来太复杂了”-你不明白具体解释的哪些部分?