JavaScript高效创建100长度数组的6种方式

345 阅读1分钟

1. 使用Array构造函数——最原始但常用

const arr = new Array(100);
console.log(arr.length); // 100
console.log(arr); // [ <100 empty items> ]

优缺点解析

  • ✔️ 快速声明指定长度的空槽数组
  • ❗ 需要注意:此时每个元素都是 empty,不可直接.map或遍历赋值

2. Array.from的妙用——推荐的现代写法

const arr = Array.from({ length: 100 });
console.log(arr.length); // 100
console.log(arr); // [undefined, ..., undefined] 共100项

实用变形:生成0~99数组

const seq = Array.from({ length: 100 }, (_, i) => i);
// [0, 1, 2, ..., 99]

面试官可能会追问Array.from的第二参数mapFn到底有什么用?上面已经做了经典演示啦!


3. fill方法——填充你的数组

const arr = new Array(100).fill(0);
// [0, 0, ..., 0]

注意:填充对象或数组的话,都是同一个引用,记得区分场景。


4. map结合fill解锁序列化

const arr = new Array(100).fill().map((_, i) => i);
// [0, 1, 2, ..., 99]

原理洞察:只有经过fill填充,map才会遍历全部元素!


5. 扩展运算符 + keys属性的骚操作

const arr = [...Array(100)];
// [undefined, undefined, ..., undefined]

const arrSeq = [...Array(100).keys()];
// [0, 1, 2, ..., 99]

隐藏技巧.keys()返回的是数组索引的迭代器,用扩展运算符轻松转数组!


6. 手动循环法(暴力可靠,适合定制)

const arr = [];
for(let i=0; i<100; i++){
  arr.push(i); // 或其他任何初始值
}

适用场景:对每个元素生成有特殊逻辑需求时,非常自由。


结语

如果你觉得这篇文章有用,记得点赞、收藏、分享,关注我查看更多前端干货!