二维数组插入一列Javascript



我有一个问题,我想在二维数组中的所有行中添加一列。例如:

var arr = [["Tom",456],["Peter",756],["Sara",348]];
var arr_1 = ["USA","GERMANY",AUSTRIA"];

将此数组匹配到:

[["Tom",456,"USA"],["Peter",756,"GERMANY"],["Sara",348,"AUSTRIA"]];

你有带循环或匹配函数的解决方案吗?

试试这个:

const mapToNewArray = (arr, arrTwo) => {
return arr.map((elem, index) => { elem.push(arrTwo[index]); return elem; });
}
let newArray = mapToNewArray(arr, arr_1);

将这两个数组都传递给函数。在第一个数组上运行.map()并跟踪索引。从第二个数组中拾取相应的元素(基于索引(,并将其推送到第一个数组的当前元素。

您可以这样做:


function addColumn(array, column) {
for (let i = 0; i < array.length; i++) {
// extra check if corresponding item is present in column by index
if (column[i]) {
array[i].push(column[i]);
}
}
return array;
}
var arr = [["Tom",456],["Peter",756],["Sara",348]];
var arr_1 = ["USA","GERMANY","AUSTRIA"];
addColumn(arr, arr_1);
arr.forEach((item, index) => item.push(arr_1[index]));
console.log(arr);

如果两个数组中的元素数量相同,并且无关紧要,那么当长度不相等时,它会填充未定义的孔。

为了避免数组中未定义,请在推送之前添加check。

在JavaScript中有很多方法可以循环遍历数组:https://www.codespot.org/ways-to-loop-through-an-array-in-javascript/

也许最容易理解的方法是:

var arr = [["Tom",456],["Peter",756],["Sara",348]];
var arr_1 = ["USA","GERMANY","AUSTRIA"];
for (let i = 0; i < arr.length; i++) { 
arr[i].push(arr_1[i]);
}

最新更新