javascript - 允许使用 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();
}
}
的values
方法Set
创建了一个我们可以在这里使用的迭代器,但是你也可以实现一个自定义的迭代器。
推荐阅读
- javascript - Angular svg 作为显示为文本的组件的模板
- powershell - [Class]::New() 导致控制台出现空行
- python - 使用 OpenCV 从背景中裁剪图像(条带提取)
- computer-vision - 读取 mjsynth 数据集图像的问题
- delphi - Delphi 5 仅对整个单词使用 Pos / PosIgnoreCase
- linear-programming - 如何在 C++ 中使用 conshdlr 获取已添加到 SCIP 的切割数量和实际切割
- python-3.x - 如何在列中计算连续 1 并获得每组的最大计数
- azure - ApplicationInsights 不考虑 json 配置的日志级别
- json - 世界银行 COVID-19 API(不完整的 JSON)
- javascript - 如何使用 PUPPETEER 为 cucumber-html-reporter 中的失败步骤附加屏幕截图?