JavaScript中的自然数序列生成

稀疏数组、类数组、apply、es6数组扩展

全年龄版

1
2
3
4
5
6
7
var natureGen = function(len){
    var arr = Array(len)
    for(i = 0; i < len; i++) {
      arr[i] = i
    }
    return arr
}

ES5偷懒错误示范

1
2
3
4
5
6
var natureGen = function(len){
    return Array(len).map(function(el, index){
        return index
    })
}
    

ES5偷懒正确姿势

1
2
3
4
5
6
7
8
var natureGen = function(len){
    // {length:len}类数组提供给Array作为参数
    // 相当于 Array([undefined, ...])
    var arr = Array.apply(null, {length: len})
    return arr.map(function(el, index){
        return index
    })
}

ES6/6+ Array.from

1
Array.from({len}).map((el, index) => index)

ES6/6+ Array.fill

1
Array(len).fill('随便').map((el, index) => index)

ES6/6+ 可不可以短一点

1
Array.from(Array(len).keys()) 

ES6/6+ 可不可以更短一点

1
[...Array(len).keys()]

还有这种操作?

奇技淫巧合集:https://www.zhihu.com/question/41493194

Licensed under CC BY-NC-SA 4.0
Built with Hugo
主题 StackJimmy 设计