允许使用 Array.from 将数据结构转换为数组



假设我有一个这样的类:

class Foo {
constructor(){
this.internalList = new Set([1,2,3])
}
}

有没有我可以像这样实现的方法:

class Foo {
constructor(){
this.internalList = new Set([1,2,3])
}
toArray(){   // add this method
const ret = [];
for(const v of this.internalList){
ret.push(v);
}
return ret;
}
}

所以我可以称之为:

const v = Array.from(new Foo());

那么是否有一些接口或方法可以满足,以便 Array.from 可以在我的类上运行?

您正在寻找的接口是迭代,Array.from使用它。你可以简单地做

class Foo {
constructor(){
this.internalList = new Set([1,2,3])
}
[Symbol.iterator]() {
return this.internalList.values();
}
}

Setvalues方法创建了一个迭代器,我们可以在此处使用,但您也可以实现自定义迭代器。

最新更新