JS如何优雅的创建连续元素的数组?

RT, 仅供娱乐,不喜勿喷。

下边是常规的实现方式

function ls(count) {
    var a = [], b = 1;
    for (; b <= count; b++)
        a.push(b);
    return a;
}

ls(6);  // [1, 2, 3, 4, 5, 6]
阅读 13.6k
5 个回答
Array.apply(Array, Array(20)).map((v, k) => k)
[...Array(20)].map((v, k) => k)
' '.repeat(20).split('').map((v, k) => k)
Array.from({ length: 20 }).map((v, k) => k)
Array.from(function* gen(i, l) {
      while(i < l) yield i++;
}(0, 20));
Object.keys([...Array(20)]) // 字符串
function ls(count) {
    return Array(++count).join('0').split('').map(function(v,i){return ++i})
}

ls(6); //[1, 2, 3, 4, 5, 6]

写一条楼上都没有的

Array(20).fill(0).map((v,i) => i+i);

稍微简单一点点

function ls(count){
    var arr=[];
    while(count>0){
        arr.unshift(count--);
    }
    return arr;
}
console.log(ls(6));
Array.from(Array(10), (x, i) => ++i)
//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array.from({length: 10}, (x, i) => ++i)
//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Array.from({
  *[Symbol.iterator](i = 0,j = 10) {
    while (i++ < j) yield i
  },
})
//(10) [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏