Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中创建新数组排序多维数组_Javascript_Jquery_Arrays_Multidimensional Array - Fatal编程技术网

在javascript中创建新数组排序多维数组

在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

我有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').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;}