Javascript 旧IE的Map.set()多边形填充?

Javascript 旧IE的Map.set()多边形填充?,javascript,Javascript,代码中是否有Map.set()polyfill for,似乎您只需将脚本加载到页面,然后它将检查全局范围中是否缺少Map和/或set类;如果是这样,它将创建缺少的类。只需在页面顶部加载脚本,您就可以开始了。对于使用get/set实现的“预算”映射,您可以尝试使用对象及其属性[]: var realmap=newmap(); var budgetmap={}; realmap.set(“a”,1); realmap.set(“b”,2); realmap.set(“a”,3); 预算图[“a”]

代码中是否有
Map.set()
polyfill for,似乎您只需将脚本加载到页面,然后它将检查全局范围中是否缺少
Map
和/或
set
类;如果是这样,它将创建缺少的类。只需在页面顶部加载脚本,您就可以开始了。

对于使用
get
/
set
实现的“预算”
映射,您可以尝试使用对象及其属性
[]

var realmap=newmap();
var budgetmap={};
realmap.set(“a”,1);
realmap.set(“b”,2);
realmap.set(“a”,3);
预算图[“a”]=1;
预算图[“b”]=2;
预算图[“a”]=3;
log(realmap.get(“a”);
console.log(budgetmap[“a”]);
log(realmap.get(“asd”);

console.log(budgetmap[“asd”])对我来说有点太大了。有更小的替代方案吗?你可以使用JS对象的键作为一个集合;参见@tevemadar的解决方案。两个对象的300行太大?我在源代码中使用了比这多得多的行,但没有做那么多有用的工作……这确实意味着代码库不是很好,但仍然很有用。我认为300行没那么糟糕。我不确定你的问题是什么,但这听起来像是一个简单的Javascript对象可以很容易地满足你的需要。我经常使用Map和Set,但是您可以使用一个对象轻松地实现该功能,因为它可以轻松地执行K>V操作:
let obj={};obj[k]=v嗯,我想。。。使用
Map.foreach()
阅读地图。这可以创建一个
var myarray=[[key,value],[key,value],…]
。而不是数组中的新条目/属性。左键使用
var map1=newmap(myarray)
创建新映射???。。。新地图(iterable)在IE11中不可用…是的,不仅如此。使用
.get
,这需要
.set
。budgetmap.get不起作用。我已经用更多的细节和代码示例扩展了这个问题。@Malama你不会说:
let a='5'
budgetmap.get(a)
,但是:
budgetmap[a]
对于对象,您在按
Object.keys()排序时遇到问题。意识到了这一点。阅读主题。@Malama:我建议使用数组来保留插入顺序。我现在使用手机,但明天将添加一些示例实现。
var map1 = new Map();
map1.set("123", "c");
map1.set(123, "b");
var iterator1 = map1.keys();
var myarray = [];
for (var i = 0; i < map1.size; i++) {
  myarray.push(iterator1.next().value);
}
console.log(myarray);
// Array ["123", 123]
var map1 = new Map();
map1.set(".", "z");
map1.set("2", "y");
map1.set(1, "x");
var mapkeys = [];
function getmyMapkeys(value, key, map) {
  mapkeys.push(key);
}
map1.forEach(getmyMapkeys);
console.log(mapkeys);
// Array [".", "2", 1]