合并三个相同长度和数组的阵列得到一个相等长度的数组

时间:2017-10-20 07:35:24

标签: javascript arrays

我有三个阵列:

arr1= [1,2,3,4,5];
arr2= [a,b,c,d,e];
arr3= [p,q,r,s,t];

我想合并这些&得到另一个数组,如下所示:

arr4= [1:a:p, 2:b:q, 3:c:r, 4:d:s, 5:e:t]

请建议我如何使用java脚本进行操作?

4 个答案:

答案 0 :(得分:0)

使用map函数迭代第一个数组,并将项的索引放入传递的函数中。使用index访问其他数组项并获得所需的结果。如果所有数组的长度相同,则此方法有效。

const arr1= [1,2,3,4,5];
const arr2= ['a','b','c','d','e'];
const arr3= ['p','q','r','s','t'];

const mappedArray = arr1.map((item, index) => `${item}:${arr2[index]}:${arr3[index]}`);

console.log(mappedArray);

答案 1 :(得分:0)

请记住,在JavaScript中无法找到您要查找的确切结果,因为您希望在同一元素中包含字符串和数字,所以您将获得一个字符串数组:

var result = ["1:a:p", "2:b:q", "3:c:r", "4:d:s", "5:e:t"];

那就是说,这里有几个解决方案。

您可以遍历它们并将结合添加到结果数组中:

var arr1= [1,2,3,4,5];
var arr2= [a,b,c,d,e];
var arr3= [p,q,r,s,t];

var result = [];

for (var i = 0; i < arr1.length; i++) {
    result.push(arr1[i] + ':' + arr2[i] + ':' + arr3[i])
}

console.log(result);

或使用Array.prototype.map()

var arr1= [1,2,3,4,5];
var arr2= [a,b,c,d,e];
var arr3= [p,q,r,s,t];

var result = arr1.map(function(val, i) {
    return arr1[i] + ':' + arr2[i] + ':' + arr3[i];
});

console.log(result);

答案 2 :(得分:0)

您可以在数组中获取所有数组或任意数组的数组,并将值映射到相同的索引。

var arr1 = [1, 2, 3, 4, 5],
    arr2 = ['a', 'b', 'c', 'd', 'e'],
    arr3 = ['p', 'q', 'r', 's', 't'],
    result = [arr1, arr2, arr3].reduce((a, b) => a.map((c, i) => c + ':' + b[i]));
    
console.log(result);

答案 3 :(得分:0)

我不确定这是你想要的。如果是这样,请在提出隐含简单功能的问题之前先搜索一下。

var arr1 = [1,2,3,4,5]
var arr2 = ['a','b','c','d','e']
var arr3 = ['p','q','r','s','t']
var arr4 = []
arr1.forEach(function (elm, idx) {
  arr4.push(elm + ':' + arr2[idx] + ':' + arr3[idx])
})

console.log(arr4) // ['1:a:p', '2:b:q', '3:c:r', '4:d:s', '5:e:t']