首页 > 解决方案 > 在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 类中的常规数组构造函数。那么我需要做什么才能获得这个功能呢?

标签: javascriptarraysclass

解决方案


这里不需要一个类,它只会让事情变得不必要的复杂。改为创建一个标准函数,它构造并返回您需要的普通数组:

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);


推荐阅读