假设我有一个这样的类:
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();
}
}
Set
的values
方法创建了一个迭代器,我们可以在此处使用,但您也可以实现自定义迭代器。