Javascript 替换二维数组中的子数组
我有以下的例子:Javascript 替换二维数组中的子数组,javascript,Javascript,我有以下的例子: const arr = [ ["1", "2", "3", "4"], ["1", "2", "3", "4"], ["1", "2", "3", "4"], ["1", "2", &q
const arr = [
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
]
arr
是一个二维阵列
const subArr = [
["a", "b"],
["a", "b"]
]
subar
也是一个二维阵列
在将arr替换为处于位置(1,1)的子AR后,我希望预期结果为:
finalArr = [
["1", "2", "3", "4"],
["1", "a", "b", "4"],
["1", "a", "b", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
]
如何使用JavaScript获取它?非常感谢可以在下面找到就地解决方案。如果希望您的
finalArr
成为新实例,则需要在应用函数embed()
之前对数组进行一些(深度)复制
常数arr=[
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
];
常数subar=[
[“a”、“b”],
[“c”、“d”]
];
函数嵌入(SubAR、arr、ioff、joff){
//执行“就地”嵌入,即在现有阵列中:
子类forEach((r,i)=>
r、 forEach((v,j)=>arr[ioff+i][joff+j]=v);
}
嵌入(子雷达、arr、1,1);
控制台日志(arr)
数组函数forEach
可以完成任务
让我们把你的(1,1)看作startY
和startX
function replace2DArray(startY, startX, array, subArray) {
/* Y is every array of subArray, i is it's index */
subArray.forEach(Y, i => {
/* X is every item of Y, j is it's index */
Y.forEach(X, j => {
let currentY = startY + i;
let currentX = startX + j;
array[currentY][currentX] = X;
})
})
}