如何将两个数组压缩为一个包含值的字符串数组

时间:2018-01-12 20:58:53

标签: javascript arrays

例如,如果我有两个看起来像这样的数组:

var array1 = ['a','b'];
var array2 = [1, 1];

输出数组应为:

var newArray = ['a:1', 'b:1']

3 个答案:

答案 0 :(得分:5)

您可以像这样使用map



var array1 = ['a','b'], array2 = [1, 1];
var newArray = array1.map((e, i) => `${e}:${array2[i]}`);

console.log(newArray);




答案 1 :(得分:4)

您可以映射迭代数组的值,并从另一个数组映射实际索引的值。



var array1 = ['a', 'b'],
    array2 = [1, 1],
    result = array1.map((a, i) => [a, array2[i]].join(':'));

console.log(result);




与任意数组的数组相同



var array1 = ['a', 'b'],
    array2 = [1, 1],
    result = [array1, array2].reduce((a, b) => a.map((v, i) => v + ':' + b[i]));

console.log(result);




答案 2 :(得分:2)

如果您愿意使用lodash,您可以使用zipWith轻松完成此操作。它需要数组并根据您提供的函数组合按索引分组的值:

var newArr = lodash.zipWith(array1, array2, (arr1val, arr2val) => `${arr1val}:${arr2val}`);