如何实现传入参数生成指定长度重复元素数组的JavaScript方法
实现指定长度填充数组的最优方案
核心实现
使用 ES6 内置的 Array.fill() 方法即可高效实现需求,该方法做过原生执行效率优化,代码也最简洁:
function createFilledArray(length, value) { return new Array(length).fill(value); } // 测试示例 console.log(createFilledArray(3, 'a')); // 输出 ['a', 'a', 'a']
注意事项
如果需要填充的是引用类型的值(比如对象、数组),直接使用fill会导致所有元素指向同一个内存地址,修改其中一个元素会联动修改所有元素。这种场景可以改用Array.from生成独立的引用值:
// 适用于填充引用类型的兼容版本 function createFilledArray(length, value) { return Array.from({ length }, () => typeof value === 'object' ? structuredClone(value) : value); }
原错误代码问题说明
你最初编写的代码是将两个入参直接追加到空数组中,最终得到的是长度为2的数组[3, 'a'],没有实现「生成指定长度、所有元素统一填充」的逻辑。
内容的提问来源于stack exchange,提问作者Matheus Rodrigues
相关产品推荐
相关产品推荐

