Javascript 从两个阵列创建一个唯一的阵列
我有两个数组(Arr1,Arr2)。我正在尝试创建一个数组,其中包含与Arr.1.length(对象数组)一样多的对象,其中格式为:Javascript 从两个阵列创建一个唯一的阵列,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我有两个数组(Arr1,Arr2)。我正在尝试创建一个数组,其中包含与Arr.1.length(对象数组)一样多的对象,其中格式为: [{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] 生成的数组应为: [{name:1,6:'',7:
[{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]
生成的数组应为:
[{name:1,6:'',7:'',8:'',9:''},{name:2,6:'',7:'',8:'',9:''},{name:3,6:'',7:'',8:'',9:''},{name:4,6:'',7:'',8:'',9:''},{name:5,6:'',7:'',8:'',9:''}]
为了简单起见,假设上面的值是字符串。我使用了两个for循环来操作两个数组。有没有一种方法可以调用以简化此过程?一种解决方案是使用overArr1
将此数组中的每个元素
映射到一个对象,该对象的属性名称
包含元素
,然后使用overArr2
添加其他具有空字符串值的键
var Arr1=[1,2,3,4,5];
var Arr2=[6,7,8,9];
var result=Arr1.map(函数(名称)
{
让obj={name};//或“让obj={name:name};”如果不支持ES6。
返回Arr2.减少(功能(acc,curr)
{
acc[当前]=“”;
返回acc;
},obj);
});
控制台日志(结果)代码>
.as控制台{背景色:黑色!重要;颜色:石灰;}
.作为控制台包装器{max height:100%!important;top:0;}
请添加一个您尝试实现的真实示例。。。我不清楚你期望得到的“结果数组”是无效的,你想要一个数组数组?我猜他在寻找一个数组对象,但不太清楚[{1,6,7,8,9},{2,6,7,8,9},{3,6,7,8,9},{4,6,7,8,9},{5,6,7,8,9}]
认为我的第一句话很清楚,但是是的。。。。和对象数组。抱歉。那么这些对象的键
名称是什么?您只显示了name
键,该键将保存Arr1
中的元素。这就像是一个咒语@Shidersz,谢谢。您知道如何检查字符串(在这个问题中是数字)是否等于该数组中对象上的任何键吗?因此,例如,如果我有6,并希望使用结果[0]对其进行分析,结果[0]为{name:1,6:'',7:'',8:'',9:''},并将结果[0]的值更改为“cat”。如果我的变量等于该键,我将如何实现这一点?我研究了.keys()方法,但我并不是真的希望得到一个数组,如果可能的话,在这个过程中再做一步。@D-Man我不太明白你到底想做什么。但是,例如:result[0].hasOwnProperty(“6”)
将检查与result[0]
相关的对象是否具有属性名“6”
。检查文件