javascript - 在javascript中返回给定开始和结束参数的数组的自定义类
问题描述
我想创建一个“自定义数组”,它接受开始和结束索引并从中生成一个数组。我对 javascript 类的了解相当有限,但我对 Java 相当了解。我不知道如何扩展一个类(我一直收到错误)所以我想出的是以下内容:
class RangedArray{
constructor(startNum, endNum){
this.startNum = startNum;
this.endNum = endNum;
this.timeslot = this.createTimeslot();
}
createTimeslot(){
let index = 0;
let arr = [];
for (let num = this.startNum; num <= this.endNum; num++) {
arr[index] = num;
index++;
}
return arr;
}
}
这段代码做我想做的事,但是如果我想访问我的数组,我必须做这样的事情
let obj = new RangedArray(4, 21);
let timeslot1 = obj.timeslot;
理想的做法是在一行中执行此操作。我的意思是我希望能够像使用它一样
let obj = new RangedArray(4, 21);
obj[0] = 1;
就像我说的,我认为这可以通过扩展 Array 类来完成,但我不知道该怎么做。我基本上想覆盖 RangedArray 类中的常规数组构造函数。那么我需要做什么才能获得这个功能呢?
解决方案
这里不需要一个类,它只会让事情变得不必要的复杂。改为创建一个标准函数,它构造并返回您需要的普通数组:
const makeRangedArray = (startNum, endNum) => {
const arr = [];
for (let num = startNum, index = 0; num <= endNum; num++, index++) {
arr[index] = num;
}
return arr;
}
const arr = makeRangedArray(4, 21);
arr[0] = 999;
console.log(arr);