将数据动态添加到 javascript 地图

Posted

技术标签:

【中文标题】将数据动态添加到 javascript 地图【英文标题】:Dynamically add data to a javascript map 【发布时间】:2011-02-27 08:37:18 【问题描述】:

有没有一种方法可以在 javascript 中动态地将数据添加到地图中。 map.put(key,value)?我正在为 javascript 使用 yui 库,但没有看到任何支持这一点的东西。

【问题讨论】:

【参考方案1】:

在打字稿中

let ar = [1, 2, 3, 4, 5, 6];

 let map = new Map<number, string>();
    ar.forEach(value => 
      map.set(value, 'value'+ value);
    );
console.log(map, 'map data');

【讨论】:

【参考方案2】:

我喜欢这种方式来实现这一点

const M = new Map(Object.entries( 
  language: "JavaScript" 
));

console.log(M.size); // 1 
console.log(...M); // ["language", "JavaScript"]

// (1) Add and update some map entries 
M.set("year", 1991); 
M.set("language", "Python");

console.log(M.size); // 2 
console.log(...M); // \["language", "Python"\] ["year", 1991]

【讨论】:

【参考方案3】:

Javascript 现在有一个特定的内置对象称为 Map,您可以如下调用:

   var myMap = new Map()

你可以用 .set 更新它:

   myMap.set("key0","value")

这具有可用于处理查找的方法的优势,例如布尔值 .has

  myMap.has("key1"); // evaluates to false 

您可以在调用 Map 对象上的 .get 之前使用它来处理查找不存在的键

【讨论】:

附加说明:myMap["key0"] = "value" 不是 myMap.set("key0","value") 的替代语法,它“有效”,但可能是大多数人不希望的。 @Akavall,一小时试图弄清楚为什么 Map.delete 不起作用以及为什么它的大小显示为 0 即使控制台输出清楚地显示项目在那里,我意识到我把就像你提到的那样。正如你所说,它“有效”,但这不是你想要的。 这是 javascript 中的正确地图对象。请投票【参考方案4】:

任何 Javascript 对象的功能都类似于“地图”

randomObject['hello'] = 'world';

通常人们会为此目的构建简单的对象:

var myMap = ;

// ...

myMap[newKey] = newValue;

edit — 使用显式“放置”函数的问题在于,您必须费尽心思避免让函数本身看起来像地图的一部分。这不是真正的 Javascripty 事情。

2014 年 2 月 13 日 — 现代 JavaScript 有 facilities 用于创建不可枚举的对象属性,而且很容易做到。但是,“put”属性(无论是否可枚举)仍然会声明属性名称“put”并使其不可用。也就是说,每个对象仍然只有一个命名空间。

【讨论】:

对,我的意思是一个javascript“地图”。你将如何构建一个 myMap.put() 函数? @stevebot:他帖子的最后一行不正是这样做的吗? 好的,我听到了。我可以做 myMap[anyKey] = anyValue 这对我有用。谢谢! 如何在地图的开头放置/添加? @user3241111 地图没有“起点”

以上是关于将数据动态添加到 javascript 地图的主要内容,如果未能解决你的问题,请参考以下文章

将javascript创建的复选框传递给控制器 以保存到表格?

如何从动态添加(使用 javascript)元素中获取值?

将 Google“我的地图”图层添加到 Google Maps Javascript API

使用javascript添加基于json值的动态div标签

springboot添加多数据源 以及 动态添加数据源动态切换数据源

动态添加带剪切路径的SVG