如何动态提取二维数组指定列?附示例代码
提取二维数组指定列(支持动态索引)
嘿,这个需求用JavaScript的数组高阶方法就能轻松搞定,而且完全支持动态修改索引数组indexes。我给你写个直观的实现,再拆解下逻辑:
实现代码
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], ]; // 移除表头(你已经完成这一步) data.shift(); // 核心提取逻辑 var result = data.map(row => indexes.map(index => row[index])); console.log(result);
逻辑拆解
- 外层的
data.map(row => ...):遍历移除表头后的每一行数据,对每一行进行针对性处理。 - 内层的
indexes.map(index => row[index]):针对当前行,按照indexes数组里的每个索引值,取出对应位置的元素,拼接成新的子数组。 - 整个过程完全动态:只要修改
indexes数组的内容,就能自动提取不同的列。比如你想要示例中的结果,只需要把indexes改成[3,4,6](因为数组索引从0开始计数),运行代码就能得到[[13,14,16], [23,24,26], [33,34,36]]啦。
内容的提问来源于stack exchange,提问作者Code Guy
相关产品推荐
相关产品推荐

