我需要删除2d数组中的一些列。列表名为hiddenCols
var array = [
["a", "b", "c"],
["a", "b", "c"],
["a", "b", "c"]
]
hiddenCols = [3, 1] // these are pos and not indexes
for (var j = 0; j < array.length; j++) {
for (var i = 0; i < hiddenCols.length; i++) {
array[j].splice(hiddenCols[i], hiddenCols[i])
}
}
console.log(JSON.stringify(array));
预期的结果是var array = ["b","b","b"];
发布于 2021-01-20 13:56:34
你可以用Arrya#reduce
const arr = [["a", "b", "c"],["a", "b", "c"],["a", "b", "c"]];
const hiddenCols = [3, 1];
let result = arr.reduce((acc, item) => {
let res = item.filter((_, ind) => hiddenCols.indexOf(ind + 1) == -1);
acc.push(res)
return acc;
}, [])
console.log(result);
发布于 2021-01-20 14:00:19
使用Array.map()迭代行,并通过检查位置是否包含在hiddenCol中来筛选项
const arr = [["a", "b", "c"],["a", "b", "c"],["a", "b", "c"]]
const hiddenCols = [3, 1]
const result = arr.map(item =>
item.filter((_, ind) => !hiddenCols.includes(ind + 1))
)
console.log(result)
https://stackoverflow.com/questions/65810874
复制相似问题