javascript怎么实现range函数

js怎么实现类似python的range函数
图片描述

阅读 19.8k
7 个回答

一个我经常使用的,而且最短的方式:

[...Array(5).keys()]
let range = (start, end) => new Array(end - start).fill(start).map((el, i) => start + i);

1.Array.from

Array.from(Array(end-start),(el,i)=>start+i)

2.Array.fill.map

Array(end - start).fill(start).map((el, i) => start + i)

3.[...Array.keys()].map

[...Array(end-start).keys()].map((el, i) => start + i)
function range(start,end){
  var arr = [];
  for(var i = start;i < end;i++){
    arr.push(i);
  }
  return arr;
}

range(0,5);
Object.defineProperty(Array.prototype,'range',{
    value:function(start,end){
        this.length = end-start;
        for(var i=0;i<this.length;i++){
            this[i] = start+i;
        }
    },
    enumberable:false
})
var arr = new Array();
console.log(arr.range(0,3));  //[0,1,2]
range = (start,end,step)=>[...function*(){while(start<end)yield start,start+=step}()]
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题