首页 > 解决方案 > 检索二维数组的选定列

问题描述

我需要检索二维数组的选定列,我有一个二维数组

var indexes = [2,3,5];
var data = [
["Head1","Head2","Head3","Head4","Head5", "Head6"],
[10,11,12,13,14,15,16],
[20,21,22,23,24,25,26],
[30,31,32,33,34,35,36],
];

预期是

var result = [
[13,14,16],
[23,24,26],
[33,34,36],
]

如何获取结果数组,而我必须能够动态更改位置的索引数组。

我试图删除第一个 Header

data.shift();

标签: javascriptarraysmultidimensional-array

解决方案


使用正确的索引,您可以映射值。

var indices = [2, 3, 5],
    data = [["Head1", "Head2", "Head3", "Head4", "Head5", "Head6"], [10, 11, 12, 13, 14, 15, 16], [20, 21, 22, 23, 24, 25, 26], [30, 31, 32, 33, 34, 35, 36]],
    result = data.slice(1).map(a => indices.map(i => a[i]));

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

ES5

var indices = [2, 3, 5],
    data = [["Head1", "Head2", "Head3", "Head4", "Head5", "Head6"], [10, 11, 12, 13, 14, 15, 16], [20, 21, 22, 23, 24, 25, 26], [30, 31, 32, 33, 34, 35, 36]],
    result = data.slice(1).map(function (a) {
        return indices.map(function (i) {
            return a[i];
        });
    });

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


推荐阅读