用生命谱写代码的赞歌

0%

巧妙使用数组方法创建一个长度为100的数组,并且每个元素的值等于它的下标(不使用 loop 循环)

生成密集数组(内部值为 undefined)

  1. Array.from({length: 100})
  2. Array.apply(null, {length: 100})
  3. ES6 spread 拓展运算符:[...Array(100)]

生成每个元素的值等于它的下标的数组

  1. ES5 版本:Object.keys(Array.apply(null,{length:100}));
  2. ES6 版本:Array.from(Array(100).keys())或者[...Array(100).keys()]
  3. Array.from({length:100},(v, k) => k)

最朴素的写法

用所谓的函数式语言,递归实现循环的思路,如下:

1
2
3
4
5
6
7
8
9
function reduce(prev, curr) {
if (curr >= 100) {
return prev
}
prev.push(curr)
return reduce(prev, curr + 1)
}

var arr = reduce([], 0)
  • 作者:Jim Liu
  • 链接:原文地址
  • 来源:知乎
  • 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。