在javascript中创建新数组排序多维数组
我有3个数组,希望使用键将它们合并到一个数组中 第一个阵列:在javascript中创建新数组排序多维数组,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,我有3个数组,希望使用键将它们合并到一个数组中 第一个阵列: dataStringold = $(this).data("old_position"); 结果:[“addpr\u 0”、“addpr\u 1”、“addpr\u 2”] 第二个阵列: dataStringnew = $(this).data("new_position"); 结果:[“addpr\u 0”、“addpr\u 2”、“addpr\u 1”] 第三阵列: var values = []; $('.destino
dataStringold = $(this).data("old_position");
结果:[“addpr\u 0”、“addpr\u 1”、“addpr\u 2”]
第二个阵列:
dataStringnew = $(this).data("new_position");
结果:[“addpr\u 0”、“addpr\u 2”、“addpr\u 1”]
第三阵列:
var values = [];
$('.destino').each(function(){
values.push( $(this).val());
});
结果:[“1”、“27”、“2”]
我需要得到它们的每个键并合并到新数组中,如下所示:
["addpr_0","addpr_0","1"] ["addpr_1","addpr_2","27"] ["addpr_2","addpr_1","2"]
如何做到这一点?另一种方法是使用函数
数组。from
并使用处理程序中的索引获取每个元素
让arr=[“addpr_0”、“addpr_1”、“addpr_2”],
arr2=[“addpr_0”、“addpr_2”、“addpr_1”],
arr3=[“1”、“27”、“2”],
result=Array.from({length:Math.max(arr.length,arr2.length,arr3.length)},({,i)=>[arr[i],arr2[i],arr3[i]];
控制台日志(结果)代码>
作为控制台包装{max height:100%!important;top:0;}
另一种方法是使用函数数组。从
中,使用处理程序中的索引获取每个元素
让arr=[“addpr_0”、“addpr_1”、“addpr_2”],
arr2=[“addpr_0”、“addpr_2”、“addpr_1”],
arr3=[“1”、“27”、“2”],
result=Array.from({length:Math.max(arr.length,arr2.length,arr3.length)},({,i)=>[arr[i],arr2[i],arr3[i]];
控制台日志(结果)代码>
.as控制台包装{max height:100%!important;top:0;}
如果所有数组的大小都相同,下面的代码可以工作
var result = ["addpr_0", "addpr_1", "addpr_2"];
var result2 = ["addpr_0", "addpr_2", "addpr_1"];
var result3 = ["1", "27", "2"];
var newResutl =[];
var i =0;
newResutl=result.map(function(item){
var n = result.indexOf(item);
return[item, result2[n], result3[n]];
});
console.log(newResutl);
如果所有数组的大小相同,则下面的代码有效
var result = ["addpr_0", "addpr_1", "addpr_2"];
var result2 = ["addpr_0", "addpr_2", "addpr_1"];
var result3 = ["1", "27", "2"];
var newResutl =[];
var i =0;
newResutl=result.map(function(item){
var n = result.indexOf(item);
return[item, result2[n], result3[n]];
});
console.log(newResutl);
您可以通过中的遍历第一个数组,并使用索引访问每个元素
const arr1=[“addpr_0”、“addpr_1”、“addpr_2”]
常量arr2=[“addpr_0”、“addpr_2”、“addpr_1”]
常数arr3=[“1”、“27”、“2”]
常量结果=[]
for(让索引进入arr1)
结果.推送([arr1[索引]、arr2[索引]、arr3[索引])
console.log(result)
您可以通过中的遍历第一个数组,并使用索引访问每个元素
const arr1=[“addpr_0”、“addpr_1”、“addpr_2”]
常量arr2=[“addpr_0”、“addpr_2”、“addpr_1”]
常数arr3=[“1”、“27”、“2”]
常量结果=[]
for(让索引进入arr1)
结果.推送([arr1[索引]、arr2[索引]、arr3[索引])
log(result)
您可以将数组用于任意数量的数组,以获得转置数组
var array0=[“addpr_0”、“addpr_1”、“addpr_2”],
数组1=[“addpr_0”、“addpr_2”、“addpr_1”],
数组2=[“1”、“27”、“2”],
arrays=[array0,array1,array2],
结果=数组.reduce((r,a)=>a.map((v,i)=>(r[i]| |[]).concat(v)),[]);
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
您可以将数组用于任意数量的数组,以获得转置数组
var array0=[“addpr_0”、“addpr_1”、“addpr_2”],
数组1=[“addpr_0”、“addpr_2”、“addpr_1”],
数组2=[“1”、“27”、“2”],
arrays=[array0,array1,array2],
结果=数组.reduce((r,a)=>a.map((v,i)=>(r[i]| |[]).concat(v)),[]);
控制台日志(结果)代码>
。作为控制台包装{最大高度:100%!重要;顶部:0;}