我有以下示例:
const arr = [
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
]
Run Code Online (Sandbox Code Playgroud)
arr 是一个二维数组
const subArr = [
["a", "b"],
["a", "b"]
]
Run Code Online (Sandbox Code Playgroud)
subArr 也是一个二维数组
用位置 (1,1) 中的 subArr 替换 arr 后,我希望预期结果为:
finalArr = [
["1", "2", "3", "4"],
["1", "a", "b", "4"],
["1", "a", "b", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
]
Run Code Online (Sandbox Code Playgroud)
我怎样才能用 JavaScript 得到它?非常感谢
可以在下面找到就地解决方案。如果您希望finalArr成为一个新实例,那么您需要在应用函数之前对数组进行一些(深度)复制embed()。
const arr = [
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"],
["1", "2", "3", "4"]
];
const subArr = [
["a", "b"],
["c", "d"]
];
function embed(subArr,arr,ioff,joff){
// Performs embedding "in place", i. e. in existing array:
subArr.forEach((r,i)=>
r.forEach((v,j)=> arr[ioff+i][joff+j]=v));
}
embed(subArr,arr,1,1);
console.log(arr);Run Code Online (Sandbox Code Playgroud)
这仍然是一个“裸机”实现,因为它不检查 subArr 是否真的“完全适合”到目标数组中。它可能会超调,然后会增加目标数组的原始维度。
| 归档时间: |
|
| 查看次数: |
78 次 |
| 最近记录: |