本文介绍一种在 JavaScript 中不使用 for 循环生成连续数组的技巧。通过设置数组长度并利用 toString 方法触发逗号分隔符替换,结合正则表达式回调函数 push 元素,从而返回指定范围的数组。该方法展示了 JS 数组底层机制的一个有趣应用。
JavaScript 利用数组长度特性实现无循环迭代
该思路源自技术交流群中的一道题目:
假设有一个数值 n=5,要求在不使用 for 循环的前提下,返回一个包含 [1,2,3,4,5] 的数组。
群成员“糖果男孩”提供了如下解决方案:
具体实现代码如下:
function getArr(n) {
var a = [],
b = [],
m = 0;
a.length = n + 1;
a.toString().replace(/,/g, function () {
b.push(++m);
});
return b;
}