Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在typescript中实现Set,特别是IterableIterator<;[T,T]>;_Typescript_Ecmascript 6_Iterator_Iterable - Fatal编程技术网

在typescript中实现Set,特别是IterableIterator<;[T,T]>;

在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 我似乎找不到任何关于如何做这件事的参考资料。有人能帮忙吗?我的第一个想法是,价值的价值必须有所不同,但到目前为止,我所尝试的一切都没有奏效。来自:

我正在用typescript玩一个Set实现。我希望它采用set的接口,但有一些不同之处,我似乎有一个问题:
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;
}