gpt4 book ai didi

javascript - 您可以将索引号数组传递给数组 push 方法,而不是在 push 中具体指定每个索引吗

转载 作者:行者123 更新时间:2023-11-29 10:55:50 24 4
gpt4 key购买 nike

我想从另一个二维数组创建一个新的二维数组,保留原始数组中在变量中定义的特定列。

我有一个工作版本,它使用硬编码值来保留原始数组中的哪些列,但我需要一个使用变量的版本。

var data = [
[1,5,7,8,9,98,56],
[4,7,8,9,2,55,88],
[3,3,4,3,3,24,11]
];

var indexes2Keep = [0,2,6];

data.forEach(function(row) {
slicedData.push( [ row[2], row[4], row[6] ] );
});

我如何使用变量 indexes2Keep 的值来提供相同的结果,而不是在数组推送方法中对列进行硬编码。

谢谢

预期输出是:

slicedData = [
[1,7,56],
[4,8,88],
[3,4,11]
];

最佳答案

你可以使用Array.map/Array.filter:

var data = [
[1,5,7,8,9,98,56],
[4,7,8,9,2,55,88],
[3,3,4,3,3,24,11]
];

var indexes2Keep = [0,2,6];
var slicedData = data.map(function (row){
return row.filter(function(_,i){
return indexes2Keep.indexOf(i) !== -1
})
})
//Alternatively
var slicedData2 = data.map(function (row){
return indexes2Keep.map(function(i){
return row[i]
})
})
console.log(slicedData)
console.log(slicedData2)

关于javascript - 您可以将索引号数组传递给数组 push 方法,而不是在 push 中具体指定每个索引吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57665789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com