Array.prototype.fill 不能直接创建二维数组,但可高效填充已存在的嵌套数组;需配合 Array.from 避免浅拷贝陷阱,正确初始化网格并支持局部填充、动态占位符及边界控制。
Array.prototype.fill 本身不能直接创建二维数组,但它非常适合在已存在的数组(尤其是嵌套数组)上批量填充默认值,配合 Array.from 或 Array(n).fill().map() 使用,就能高效初始化带占位符的网格。
常见误区是直接对二维数组调用 fill——这会导致所有行引用同一子数组。正确做法是:先生成独立的行数组,再对每行单独 fill,或对每个单元格赋值。
null:fill 替换某一行全部值(比如第 1 行设为 'X'):0),仍要避免浅拷贝陷阱:当占位符需要按位置动态生成(如坐标字符串 'r0c0'),可在 map 中结合 fill 或直接构造:
'header'):fill(value, start, end) 的 end 是**不包含**的,且索引从 0 开始;它修改原数组,不返回新数组。这对网格局部初始化很实用:
如果网格结构复杂(如每行长度不同)、需深度克隆,或占位符依赖异步数据,fill 就不够用。此时优先用 Array.from + 回调,或封装初始化函数:
LazyColumn 性能优化:从卡顿到流畅的大列表治理
QQ怎么接入OpenClaw OpenClaw快速接入QQ指南实用指南
谈一谈企业为什么需要 `RAG` 知识库?
Claude Code配置智谱GLM-4.7 模型完整操作文档实用指南
第4周行业复盘总结:AI + Web3 四大落地场景的关键教训与可复用架构模式
非结构化数据用什么数据库好?Redis 和 MongoDB 如何选?阿里云瑶池数据库 Tair 与 Lindorm 方案