问题标签 [ordered-map]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
687 浏览

c++ - std::map 的 find 找不到,但 map 中的元素需要手动扫描

我正在使用 std::map 和一个列表来跟踪元素和相关分数的窗口化。当一个窗口已满时,我想从窗口队列中弹出一个元素并将其从地图中删除。因为可能存在重复,映射会跟踪窗口中每个元素出现的次数。我还使用了一个有序的地图,这样我就可以在给定的窗口中不断地获取最小值。

我的问题是 find() 不期望返回 end() 。当我遍历地图时,我发现元素存在。我不想牺牲使用 map 的对数复杂度。

tl; dr:std::map 表示元素不在地图中。手动扫描说是。

[编辑:Bryan Chen 的建议修复了地图。谢谢!]

0 投票
4 回答
1462 浏览

immutable.js - fromJS 到带有 Immutable.js 的嵌套有序映射?

有没有人建议使用 Immutable.js 将 js 列表列表深度转换为嵌套有序映射的最佳方法?

0 投票
1 回答
3055 浏览

javascript - 不可变 JS OrderedMap:在给定键之后插入新条目

我有一个不可变的 OrderedMap,如下所示:

我需要在 ["Key2":"Value2"] 之后动态插入 ["Key3":"Value3"]。

我想

将达到目的但不起作用。

我试过了

但我知道这是一个愚蠢的代码,它不起作用,因为 newPairs 是不可变的,并且 newPairs 仍然是空的。那么OrderedMap.addBefore(Key,key,value)有什么不可变的方式吗?

0 投票
1 回答
1030 浏览

react-native - 合并 2 个不可变 JS 有序映射对象

我正在使用 Immutable JS 作为我的 React Native App 的 redux 商店。我有 2 个有序映射,它是列表的键控集合。当我尝试合并这 2 个有序映射时,如果键重叠,则数据将被覆盖。

例如:考虑我有 2 个以日期为键的有序地图。当我合并它们时,如果它们都有相同日期的键,则该键的数据将被替换。如何在不丢失数据的情况下连接它们?

OrderedMap1:{'21-07-2017':列表(10),'22-07-2017':列表(10),'23-07-2017':列表(10),'24-07-2017':列表(10) }

OrderedMap2: { '24-07-2017': List(5) }

当我尝试合并它们时,数据 @ key '24-07-2017' 被替换 OrderedMap1.merge(OrderedMap2) 给出 { '21-07-2017': List(10), '22-07-2017': List (10),“23-07-2017”:列表(10),“24-07-2017”:列表(5)}

我尝试过 concat()、merge() 和 mergeDeep() 方法

0 投票
2 回答
1567 浏览

python - 解析 YAML,即使在有序地图中也能获取行号

我需要获取 YAML 文件的某些键的行号。

请注意,此答案不能解决问题:我确实使用ruamel.yaml,并且答案不适用于有序地图。

结果我得到了这个:

什么不允许访问行号,除了!!omap键:

但:

确实,data['key1']['key2]是一个str

我找到了一种解决方法:

输出:

但这看起来有点“脏”。有没有更合适的方法呢?

编辑:这种解决方法不仅肮脏,而且仅适用于上述简单情况,并且一旦出现嵌套列表就会给出错误结果

0 投票
1 回答
521 浏览

javascript - 如何将键值对添加为 OrderedMap 中的最后一个条目..?

可能重复: 使用 Immutable.js 在 OrderedMap 中添加项目

使用redux storeImmutable js OrderedMap

Redux 存储结构:

减速机代码:

哪里action.item_id是随机 ID(每个项目的密钥)。

上面的代码非常适合添加项目。

问题是:物品存放在随机位置。我需要保持我添加的顺序。需要将每个项目添加为内部的最后一个条目item。一项一项添加的顺序不同。

帮助我找到一个明确的解决方案。

0 投票
2 回答
403 浏览

php - 为什么 Symfony 提供 OrderedHashMap

Symfony 提供了一个OrderedHashMap. 它的文件指出

与关联数组不同,映射会跟踪添加和删除键的顺序。此顺序反映在迭代过程中。

我对这种说法感到困惑,因为我认为 PHP 关联数组实际上已经是有序映射。我在 SO 上发现了这个问题,这证实了我之前的假设:Are PHP Associative Arraysordered?

我想知道,如果 Symfony 开发人员不知道 PHP 数组已经是有序映射,或者我不了解 Symfony 的角​​色OrderedHashMap

0 投票
0 回答
87 浏览

c++ - 在有序地图中实现天花板/地板/较低/较高条目

我正在尝试为自定义有序地图类实现天花板/地板/较低/较高条目功能。目前我有两个语法错误:

  1. “>> 应该是 >> 在嵌套模板中”,我已经以这种方式对其进行了修改,但仍然出现此错误。
  2. “BSTIterator 没有命名类型”。

您能否告诉我如何做 ceilingEntry (它应该返回一个迭代器到具有大于或等于k​​的最小键值的条目,或者如果没有这样的条目或 map 为空,则返回 end() )?我试图将代码减少到最低限度,我希望它是可以理解的。

BT.h

BST.h

有序映射.h

编辑:我扩展了代码,以便可以轻松编译它。我试图最小化,但它仍然很大,因为有很多依赖项。大部分空间都被模板占用了,我希望这很好。

0 投票
0 回答
47 浏览

javascript - 不保证 JS 对象的属性顺序,进一步调查?

由于每个 JavaScript 开发人员都应该知道,不能保证对象的顺序在所有情况下都相同,因此我们被告知只要子项的顺序合理就使用(对象的)数组。

但是每次我在浏览器的 devtools 中检查一个(无序的)对象时,我都会意识到这个顺序完全符合我的预期(假设 JS 对象的行为类似于有序映射)。

属性的顺序何时或为什么会改变?

在不同的浏览器/JS解释器中?由于一些内存优化,在不同的运行时,我没有任何线索?

任何人都可以澄清,什么时候对象的属性的顺序可能会改变?

编辑

我已阅读问题

但我找不到有关何时依赖订单不安全的信息。

0 投票
2 回答
79 浏览

c++ - 为什么我们没有用于地图的 hash 和 pred 函子?

如果我们在使用键时unordered_map定义hash和函子。preduser-defined

地图的模板语法如下:

在 map 的情况下,没有hashpredfunctors 选项。在map. 如果发生碰撞,那么为什么我们没有像 in 中的hashandpred函子unordered_map呢?我在这里错过了什么吗?