2个不同的阵列到单个阵列集

时间:2018-10-11 12:41:20

标签: javascript angular typescript

我正在尝试制作这2个不同的数组

array1 = ["ramu", "raju", "ravi"] ;
array2 = [10, 20, 30];

希望使用单个数组名

arrayNeed =[{name:"ramu",amt:10},{name:"raju",amt:20},{name:"ravi",amt:30}];

2 个答案:

答案 0 :(得分:2)

您要压缩array1和array2。您应该为此使用地图:

  

map()方法创建一个新数组,其结果是在调用数组中的每个元素上调用提供的函数。

array1 = ["ramu", "raju", "ravi"] ;
array2 = [10, 20, 30];    
arrayNeed = array1.map((x, i) => ({name: x, amt: array2[i]}))

source

有关:

答案 1 :(得分:1)

您只需在第一个数组上运行forEach。这将接受带有两个参数的回调函数:item(一次一个),该项目在数组中的索引。

由于您将拥有index,因此只需在amt上添加一个名为array2的值的index

键即可。

尝试一下

array1 = ["ramu", "raju", "ravi"] ;
array2 = [10, 20, 30];
arrayNeed = [];

array1.forEach((item, index) => {
  arrayNeed.push({ name: item, amt: array2[index] });
})

简写语法也可以是:

arrayNeed = array1.map((item, index) => ({ name: item, amt: array2[index] }))

arrayNeed = array2.map((item, index) => ({ amt: item, name: array1[index]  }))