从多维数组中提取列的子数组,并修改原始数组以删除这些列的JavaScript实现可以使用以下方法:
function extractColumns(arr, columns) {
var result = [];
for (var i = 0; i < arr.length; i++) {
var row = [];
for (var j = 0; j < columns.length; j++) {
row.push(arr[i][columns[j]]);
}
result.push(row);
}
return result;
}
function removeColumns(arr, columns) {
for (var i = 0; i < arr.length; i++) {
for (var j = columns.length - 1; j >= 0; j--) {
arr[i].splice(columns[j], 1);
}
}
}
// 示例用法
var arr = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
];
var columnsToExtract = [1, 3];
var extractedColumns = extractColumns(arr, columnsToExtract);
console.log(extractedColumns);
// 输出: [[2, 4], [6, 8], [10, 12]]
removeColumns(arr, columnsToExtract);
console.log(arr);
// 输出: [[1, 3], [5, 7], [9, 11]]
这段代码定义了两个函数:extractColumns
和removeColumns
。extractColumns
函数接受一个多维数组和一个列索引数组,返回一个新的数组,其中包含原始数组中指定列的子数组。removeColumns
函数接受一个多维数组和一个列索引数组,直接修改原始数组,删除指定列。
在示例中,我们定义了一个多维数组arr
,然后指定要提取和删除的列索引数组columnsToExtract
。首先,我们使用extractColumns
函数提取指定列的子数组,并将结果存储在extractedColumns
变量中。然后,我们使用removeColumns
函数从原始数组arr
中删除指定列。最后,我们分别打印提取的子数组和修改后的原始数组。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体需求进行适当的修改和优化。
领取专属 10元无门槛券
手把手带您无忧上云