问题标签 [es6-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 投票
0 回答
285 浏览

angular - 当 ES6 Map 的值发生变化时,Angular 会自动更新 UI

我在下面的 stackblitz 链接中有我的完整代码,

https://stackblitz.com/edit/angular-simple-cache-service-with-rxjs-8cywbi?file=app%2Fapp.component.ts

在这里,我尝试在有人更新存储位置时更新 UI(在本例Map中为 - 在cache.service.ts文件中)。

  • 当我单击Get方法时,它会从缓存中获取值并更新 UI。
  • 当我单击Set方法时,它会更新Mapinside中的值CacheService

Set当我使用 RxJs调用时,有什么方法可以自动更新 UI ?

cache.service2.ts注意:您可以在文件中看到我的新足迹。

0 投票
3 回答
7723 浏览

javascript - 在保留键的同时按值的属性对 Map 进行排序

我有一张声明为 的地图var cars = new Map<string, object>();,其中string是汽车的型号,其中包含 和 之类的object信息。yearprice

因此,Map将如下所示:

我想按price字段(asc 或 desc)对所有条目进行排序。

我想不出任何解决方案,因为迭代values会丢失密钥,并且像我读到的解决方案...cars.entries()不适用,因为这些值是不可迭代的。

PS 我目前正在使用 TypeScript,但 JS 的解决方案仍然应该适用。

编辑:我尝试将地图转换为数组,如下所示:

但是我在重建地图以保持keys...</p>

0 投票
4 回答
11062 浏览

javascript - ES6 Map 仅返回对象键数组

我正在尝试编写一个方法来帮助我返回所有货币的对象键数组。但是,我被困在一个点上,我得到了带有键值对的完整对象数组。

是的,我主要需要使用 ES6 方法。我不想使用任何其他迭代器。

例如:我需要什么:

我得到什么:

你能帮我实现这个吗?

这是代码:

0 投票
1 回答
179 浏览

javascript - js如何简洁实现map[index]++

有了数组,我可以使用array[index]++

但有了地图,我只知道map.set(index,map.get(index)+1)

我认为它看起来很糟糕,如果index是一个长名称函数,我必须将它分成两行。

有没有更简洁的实现方式map[index]++

0 投票
1 回答
998 浏览

reactjs - 为什么将 props 的数组映射移到渲染函数之外在 React 中不起作用?

下面的例子工作得很好,我在渲染函数中映射了 props 数组。

但是当我将数组映射移动到另一个函数时不再起作用。

任何帮助,将不胜感激。

0 投票
2 回答
128 浏览

javascript - 在地图实例上使用地图/过滤器行为

我有这条快速路线:

在哪里

(CDTChronBase 是一个类)

以上工作,但如果可能的话,我想简化它,如下所示:

但是对于我的生活,我无法弄清楚如何获取 Map 上任何方法的 Array 实例。有没有办法在 Map 对象上使用 map/filter 类型的方法?

0 投票
1 回答
78 浏览

javascript - 清除地图有助于垃圾收集吗?

我最近注意到我的同事倾向于在取消引用之前清除所有映射,例如在函数结束时。

他对此的论点是,这是垃圾收集的好习惯,我很好奇这是真的还是过度优化的情况?

例子:

0 投票
7 回答
87763 浏览

javascript - 使用 ES6 中的 map 函数更新对象的属性值

我正在尝试在 ES6 中对此进行编码。以下是我想要实现的目标。假设我有一个名为schools.

现在,我想编写一个名为的函数,该函数editSchoolName将接受 3 个参数schools(这是我在上面定义的数组)oldNamename.

我将在参数中传递学校的名称,oldName并且该名称应使用参数中的值进行更新name

我不想更改变量的状态,schools所以我使用了一个map函数,它将返回一个包含更改的新数组。

editSchoolName函数将像这样调用 -

在这里, nameYorkTown应该替换为 name New Gen。所以数组的期望值updatedSchools应该是 -

这就是我的 editSchoolName 函数的样子 -

在更改editSchoolName功能以实现上述预期结果时需要帮助。

0 投票
3 回答
20073 浏览

javascript - Javascript 地图排序

我最近在我的代码中有一个错误,这是由于我在查看 MDN 上的 Map 对象详细信息时缺少“按插入顺序”文本。简而言之,我有一个地图对象,可以说

然后,在填充它之后,我用一个简单的 for .. of语句迭代它的内容。像这样

for循环中的代码取决于 (key, value) 对,按key排序。但是,填充地图的算法是以随机顺序执行的(我无法更改)。为了解决这个问题,我现在首先将所有可能的键添加到地图对象,如下所示:

幸运的是,它们并不多(因此性能损失可以忽略不计),这很有效。这个解决方案对我来说仍然有点尴尬。

有更好的吗?

0 投票
2 回答
3266 浏览

dictionary - 将 ES6 Map 与 Flow 类型一起使用

我正试图将我的头绕在流程上,但我很难让它与 ES6 一起工作Map

考虑这个简单的案例(现场演示):

流量抛出:

我也试过:

但我得到了同样的错误

我相信这是因为 flow 认为值也可以是数字以外的东西,所以我尝试用严格的 setter 和 getter 包装地图(现场演示):

但后来我得到了:

我如何告诉流程我只处理数字地图?

编辑:

Typescript 方法对我来说更有意义,它在set上而不是在get上抛出。

有没有办法让 Flow 的行为方式相同?