
本文详解如何使用一维数组(如 [1, 4, 6, 9, ...])按行优先顺序填充已创建的二维零矩阵,涵盖矩阵初始化、安全填充逻辑、边界处理及完整可运行示例。
本文详解如何使用一维数组(如 `[1, 4, 6, 9, ...]`)按行优先顺序填充已创建的二维零矩阵,涵盖矩阵初始化、安全填充逻辑、边界处理及完整可运行示例。
在 JavaScript 中构建并填充二维矩阵(即 2D 数组)是常见需求,尤其在数据可视化、游戏开发或算法实现中。关键在于:先正确创建结构化的空矩阵,再按需逐元素赋值——而非试图用 fill() 或 push() 直接操作嵌套结构(易引发引用错误或维度错乱)。
✅ 正确创建二维零矩阵
推荐使用 Array.from() 创建深拷贝的二维结构,避免浅拷贝陷阱:
function createMatrix(rows, cols) {
return Array.from({ length: rows }, () =>
Array.from({ length: cols }, () => 0)
);
}
⚠️ 注意:Array(rows).fill(Array(cols).fill(0)) 是错误做法——它会创建多行指向同一列数组的引用,修改任一元素将影响整列。
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
✅ 安全填充矩阵:按行优先遍历 + 索引控制
使用双层循环遍历矩阵,并借助独立计数器 i 从 populateArr 中顺序取值。当源数组耗尽时立即终止,防止越界:
function populateMatrix(matrix, arr) {
let i = 0;
for (const row of matrix) {
for (let j = 0; j <h3>✅ 完整可运行示例</h3><pre class="brush:php;toolbar:false;">const populateArr = [1, 4, 6, 9, 25, 43, 12, 8, 3, 10, 56, 72, 23, 14, 66];
// 创建 5×3 零矩阵(注意:题目目标为 5 行 × 3 列,共 15 个元素)
const matrix = createMatrix(5, 3);
// 填充
populateMatrix(matrix, populateArr);
console.log(matrix);
// 输出:
// [
// [1, 4, 6],
// [9, 25, 43],
// [12, 8, 3],
// [10, 56, 72],
// [23, 14, 66]
// ]
? 关键注意事项
- 行列参数校验:生产环境建议在 createMatrix 中添加 rows > 0 && cols > 0 断言;
- 数据长度匹配:若 populateArr.length
- 不可变替代方案:如需函数式风格,可用 map() 生成新矩阵(但会增加内存开销);
- 性能提示:对超大矩阵(如 10k×10k),考虑使用 TypedArray 或分块填充优化。
掌握这一模式后,你不仅能精准填充矩阵,还可轻松扩展为列优先填充、螺旋填充或条件填充等高级场景。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










