我有一个部件号数组,['PCI-33', 'GG-34', 'GG-32']
我有一系列区域,['UK', 'US', 'CA', 'MX']
等
我正在尝试组合这两个数组,这样我就可以得到这样的结果:
['PCI-33-UK', 'GG-34-UK', 'GG-32-UK', 'PCI-33-US', 'GG-34-US', ... , 'GG-32-MX']
这样做的有效方法是什么?
最佳答案
使用2个嵌套Array#map创建组合两个数组,并应用 Array#concat压平结果:
var strs1 = ['PCI-33', 'GG-34', 'GG-32'];
var strs2 = ['UK', 'US', 'CA', 'MX'];
var result = [].concat.apply([], strs1.map(function(str1) {
return strs2.map(function(str2) {
return str1 + '-' + str2;
});
}));
console.log(result);
ES6 版本使用 Array#concat 和 spread syntax展平子阵列,和一个template literal创建字符串。
var strs1 = ['PCI-33', 'GG-34', 'GG-32'];
var strs2 = ['UK', 'US', 'CA', 'MX'];
var result = [].concat(...strs1.map((str1) => strs2.map((str2) => `${str1}-${str2}`)));
console.log(result);
关于javascript - 如何使用两个字符串数组来构建一个将它们组合在一起的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45225341/