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

Posted

技术标签:

【中文标题】在javascript中创建新的数组排序多维数组【英文标题】:Create new array sorting multidimensional array in javascript 【发布时间】:2019-02-23 18:11:08 【问题描述】:

我有 3 个数组,想用 key 将它们合并成一个数组

第一个数组:

dataStringold = $(this).data("old_position"); 

结果:["addpr_0", "addpr_1", "addpr_2"]

第二个数组:

 dataStringnew = $(this).data("new_position");

结果:["addpr_0", "addpr_2", "addpr_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"]

怎么办?

【问题讨论】:

【参考方案1】:

另一种方法是使用函数Array.from 并使用处理程序中的索引获取每个元素。

let 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]]);

console.log(result);
.as-console-wrapper  max-height: 100% !important; top: 0; 

【讨论】:

【参考方案2】:

如果所有数组的大小相同,则以下代码有效

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);

【讨论】:

【参考方案3】:

您可以通过for in 遍历第一个数组并使用index 访问每个元素。

const arr1 = ["addpr_0", "addpr_1", "addpr_2"]
const arr2 = ["addpr_0", "addpr_2", "addpr_1"]
const arr3 = ["1", "27", "2"]
const result = []

for (let index in arr1)
  result.push([arr1[index], arr2[index], arr3[index]])

console.log(result)

【讨论】:

【参考方案4】:

您可以将数组用于任意数量的数组以获得转置数组。

var array0 = ["addpr_0", "addpr_1", "addpr_2"],
    array1 = ["addpr_0", "addpr_2", "addpr_1"],
    array2 = ["1", "27", "2"],
    arrays = [array0, array1, array2],
    result = arrays.reduce((r, a) => a.map((v, i) => (r[i] || []).concat(v)), []);

console.log(result);
.as-console-wrapper  max-height: 100% !important; top: 0; 

【讨论】:

以上是关于在javascript中创建新的数组排序多维数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Javascript 中创建多维数组? [复制]

如何在javascript中对多维数组进行排序

Javascript:对多维数组进行排序

JavaScript:自动对可变多维数组进行对角排序

数组多维javascript

javascript创建多维数组语法[重复]