在typescript中实现Set,特别是IterableIterator<;[T,T]>;
我正在用typescript玩一个Set实现。我希望它采用set的接口,但有一些不同之处,我似乎有一个问题:在typescript中实现Set,特别是IterableIterator<;[T,T]>;,typescript,ecmascript-6,iterator,iterable,Typescript,Ecmascript 6,Iterator,Iterable,我正在用typescript玩一个Set实现。我希望它采用set的接口,但有一些不同之处,我似乎有一个问题:entries()但是: 我已经在我的对象上实现了next(),它返回: { value: elementAt(index), done: false; } 或 但这对我来说并不适用 entries():IterableIterator 我似乎找不到任何关于如何做这件事的参考资料。有人能帮忙吗?我的第一个想法是,价值的价值必须有所不同,但到目前为止,我所尝试的一切都没有奏效。来自:
entries()
但是:
我已经在我的对象上实现了next()
,它返回:
{
value: elementAt(index),
done: false;
}
或
但这对我来说并不适用
entries():IterableIterator
我似乎找不到任何关于如何做这件事的参考资料。有人能帮忙吗?我的第一个想法是,价值的价值必须有所不同,但到目前为止,我所尝试的一切都没有奏效。来自:
entries()
方法返回一个新的迭代器
对象,该对象包含一个[value,value]
数组,用于集合
对象中的每个元素,按插入顺序排列。对于Set
对象,没有类似于Map
对象中的键。但是,为了使API类似于映射
对象,每个条目在此处的键和值都具有相同的值,因此返回一个数组[value,value]
这意味着您的对象要满足Set
接口,它需要为其entries()
方法返回与其values()
和keys()
方法不同的迭代器。具体来说,您需要将迭代器结果的值
设置为一对,因此next()
返回如下内容
{
value: [elementAt(index), elementAt(index)]
done: false;
}
希望有帮助;祝你好运 为什么
[T,T]
?这意味着迭代应该产生一个包含2个元素的列表?您不应该只是实现IterableIterator
?为什么不看看内置的集合的功能呢<代码>常数s=新集合([1,2,3]);Array.from(s.entries()).forEach(v=>console.log(JSON.stringify(v));//[1,1][2,2][3,3]
这与我的想法类似,但不起作用。实际上,我相信它应该返回一个元素和下一个方法,该方法返回您指定的对象。但这也不起作用。如果没有a,很难说“不起作用”是什么意思。当然,我会尝试补充一点,就是今天没有时间
{
value: [elementAt(index), elementAt(index)]
done: false;
}