【发布时间】:2011-02-27 08:37:18
【问题描述】:
有没有一种方法可以在 javascript 中动态地将数据添加到地图中。 map.put(key,value)?我正在为 javascript 使用 yui 库,但没有看到任何支持这一点的东西。
【问题讨论】:
标签: javascript data-structures maps yui
有没有一种方法可以在 javascript 中动态地将数据添加到地图中。 map.put(key,value)?我正在为 javascript 使用 yui 库,但没有看到任何支持这一点的东西。
【问题讨论】:
标签: javascript data-structures maps yui
在打字稿中
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');
【讨论】:
我喜欢这种方式来实现这一点
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]
【讨论】:
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") 的替代语法,它“有效”,但可能是大多数人不希望的。
任何 Javascript 对象的功能都类似于“地图”
randomObject['hello'] = 'world';
通常人们会为此目的构建简单的对象:
var myMap = {};
// ...
myMap[newKey] = newValue;
edit — 使用显式“放置”函数的问题在于,您必须费尽心思避免让函数本身看起来像地图的一部分。这不是真正的 Javascripty 事情。
2014 年 2 月 13 日 — 现代 JavaScript 有 facilities 用于创建不可枚举的对象属性,而且很容易做到。但是,“put”属性(无论是否可枚举)仍然会声明属性名称“put”并使其不可用。也就是说,每个对象仍然只有一个命名空间。
【讨论】: