【发布时间】:2019-08-28 13:37:17
【问题描述】:
我有一个 Map,其中包含 Shape 对象值,其 id 作为键。 我需要迭代此地图中的每一对形状,但我只想对每一对形状进行一次迭代。
我知道我可以使用 forEach 或 for..of,但我找不到防止重复对的方法。此外,这应该尽可能高效。
shapes.forEach((shape1, shapeId1) => {
shapes.forEach((shape2, shapeId2) => {
// iterating over each pair many times
});
});
【问题讨论】:
-
你觉得普通的
for循环怎么样?还是需要使用forEach()之类的方法? -
我需要保留地图的功能以允许我按 id 访问形状(形状被删除并添加到 id 不是连续的)
-
您应该能够保留您的
Map,即使您迭代其entries()输出。但是,为什么您的地图将对象作为 keys 而将 ids 作为 values?如果要通过 id 查找对象,id 应该是 key,object 应该是 value。 -
你说得对,我不小心在 key 和 value 之间切换了。 (编辑原帖)
-
好的,我将更改我的答案以匹配它(您应该在您的问题中将
(shape1, shapeId1)更改为(shapeId1, shape1),同样使用2)
标签: javascript arrays typescript object