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

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

【问题讨论】:

    标签: javascript data-structures maps 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 地图没有“起点”
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-20
        • 2014-12-20
        • 1970-01-01
        • 1970-01-01
        • 2020-04-29
        • 1970-01-01
        相关资源
        最近更新 更多