从两个数组创建一个唯一的数组

时间:2019-05-02 15:27:50

标签: javascript arrays javascript-objects

我有两个数组(Arr1,Arr2)。我正在尝试创建一个数组,其中包含与Arr.1.length(对象数组)一样多的对象,格式为:

256

使用专有信息,因此我无法显示实际代码。为了简单起见,我们将检查两个数组:

[{name:Arr1[0], Arr2[0],Arr2[1]...etc}, {name:Arr1[1], Arr2[0],Arr2[1]...etc}..... etc]

结果数组应为:

Arr1[1,2,3,4,5] 
Arr2[6,7,8,9]

为简单起见,请想象上面的值是指示的字符串。我使用了两个for循环来操纵两个数组。有没有一种调用方法可以简化此操作?

1 个答案:

答案 0 :(得分:1)

一种解决方案是在Arr1上使用Array.map()将此数组的每个element映射到具有name属性element的对象,那么我们在Arr2上使用Array.reduce()来添加另一个keys并带有空字符串值。

var Arr1 = [1, 2, 3, 4, 5];
var Arr2 = [6, 7, 8, 9];

var result = Arr1.map(function(name)
{
    let obj = {name}; // or "let obj = {name: name};" if no ES6 support.

    return Arr2.reduce(function(acc, curr)
    {
        acc[curr]= "";
        return acc;
    }, obj);
});

console.log(result);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}