Javascript 在位置“获取项目”;x";关于可分类

Javascript 在位置“获取项目”;x";关于可分类,javascript,arrays,typescript,iterator,Javascript,Arrays,Typescript,Iterator,我正在创建一个iterable类,它使用for循环工作,如下所示: for(let i of myClassInstance) { console.log(i) } 然而,如果我想在这样的索引中获取一个项目,我会得到未定义的: console.log(myClassInstance[2]) 我该怎么做才能从班上拿到物品?这是我的类上的迭代器,我还需要其他东西来实现它吗 class myClass { public [Symbol.iterator]() { let items

我正在创建一个iterable类,它使用for循环工作,如下所示:

for(let i of myClassInstance) {
  console.log(i)
}
然而,如果我想在这样的索引中获取一个项目,我会得到
未定义的

console.log(myClassInstance[2])
我该怎么做才能从班上拿到物品?这是我的类上的迭代器,我还需要其他东西来实现它吗

class myClass {
  public [Symbol.iterator]() {
    let items = this._items
    let pointer = 0
    return {
      next(): IteratorResult<T> {
        if (pointer < items.length) {
          return { done: false, value: items[pointer++] }
        }
        return { done: true, value: items[items.length - 1] }
      }
    }
  }
}
class-myClass{
public[Symbol.iterator](){
让项目=此项。\u项目
设指针=0
返回{
next():IteratorResult{
if(指针
我该怎么做才能从班上拿到物品

要使用数组索引,请转换为数组:

console.log(Array.from(myClassInstance)[2]);

为什么不添加一个方法
项(索引)
并使用它呢?我不确定你是否可以在jsI中创建索引属性,我只是希望我可以这样做也许最接近的事情是?这就是ES6,请考虑扩展阵列<代码>类MyClass扩展数组{…}