Javascript 如何从两个数组创建键值数组

Javascript 如何从两个数组创建键值数组,javascript,arrays,Javascript,Arrays,我有两个数组,它们的元素数是1:1 const array1 = [1, 3, 2] const array2 = [U2, U1, U3] 如何从array1和array2生成一个新的数组(或映射),并获得类似的结果 const result = [[1, U1], [2, U2], [3, U3]] 您还可以使用Array.forEach()。在此之前,您可以对array1数组进行排序,然后从array2中获取前缀为U的相应值,以获得所需的输出: const数组1=[1,3,2]; 常

我有两个数组,它们的元素数是1:1

const array1 = [1, 3, 2]
const array2 = [U2, U1, U3]
如何从array1和array2生成一个新的数组(或映射),并获得类似的结果

const result = [[1, U1], [2, U2], [3, U3]]

您还可以使用
Array.forEach()
。在此之前,您可以对
array1
数组进行排序,然后从
array2
中获取前缀为
U
的相应值,以获得所需的输出:

const数组1=[1,3,2];
常量数组2=['U2','U1','U3'];
常量结果=[];
数组1.排序(函数(a,b){
返回a-b;
})
array1.forEach((elem,index)=>result.push([elem,array2[array2.indexOf('U'+elem)]);

控制台日志(结果)您可以根据每个项目的数值对数组进行分组

var array1=[1,3,2],
数组2=['U2'、'U1'、'U3'],
结果=对象。值([array1,array2]。减少(
(o,a)=>{
a、 forEach(v=>{
var k=v.toString().match(/\d+$/)[0];
(o[k]=o[k]| |[])。推(v);
});
返回o;
},
Object.create(空)
));
控制台日志(结果)

。作为控制台包装{max height:100%!important;top:0;}
请访问查看和。提示:后期工作和代码。您尝试了什么来实现您想要的结果?逻辑是什么-两个数组如何映射/关联(顺序)?dupe是关于创建一个对象,而不是2d数组。创建数组更简单:const array1=[1,3,2];常量数组2=[“U2”、“U1”、“U3”];const result=array1.map(函数(项,i){return[item,array2[i]];})console.log(结果)输出与OP的预期结果不同。@mplungjan我认为这不是dup,因为OP的输出是基于
array1
的数值递增的。dup问题没有这个。只有当U1有相同数字的后缀时,你的代码才会工作。如果数组是
[“一”、“三”、“二”]
[“这是第一项”、“这是第三项”、“这是第二项”]
@mplungjan OP需要提及that@mplungjan不过我已经更新了答案来解决这个问题,我相信OP不会有任何类似于您在commentOutput中指定的示例数组的东西,它与OP的预期结果不一样。太好了。它现在正在工作。附言:我不是那个投了否决票的人。