javascript - 如何在 JavaScript 中用 2D Smaller 数组填充 2D 数组
问题描述
如果没有得到很好的解释,我深表歉意。我对 JavaScript 很陌生。
我有一个 10x10 的 2D arrayA 和一个 5x8 的 2D arrayB。默认情况下,较小的 arrayB 填充数据,较大的 arrayA 仅填充 0。
如何将数据从 arrayB 移动到 arrayA,同时仍然将 arrayA 的剩余空间保留为 0?
最终结果必须是 arrayA 应该包含与 arrayB 相同顺序的所有数据,但剩余空间仍然只包含 0。
解决方案
使用Array.from
和迭代,同时迭代检查该值是否存在于填充数组中。如果存在,则使用该值,否则使用相同的数组值。
const fill = (arr1, arr2) =>
Array.from(arr1, (arr, row) =>
Array.from(arr, (value, col) => (arr2[row] && arr2[row][col]) || value)
);
const arrA = [
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
];
const arrB = [
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4],
[0, 1, 2, 3, 4]
];
console.log(JSON.stringify(fill(arrA, arrB)));
推荐阅读
- c# - 从 .NET core 中的 IQueryable 获取 Sqlite SQL 语句
- javascript - 如何在 React 中为输入类型文件应用 2way 绑定?
- android - 如何修复奇怪的设计师视图错误?
- spring-boot - Spring Boot应用程序在命中目标时下载JSP,但不是HTML
- sql - 具有多个连接和子查询的实体框架
- macos - macOS 应用程序包框架目录代码设计
- slurm - Wrapper,这看起来不像是批处理脚本
- python - 熊猫非常慢的查询
- python - 如何完全显示具有多列的 holoviews 表
- javascript - HTML表格的隐藏列也在导出