javascript - 如何从 Javascript 中的字符串列表创建映射(对象)

标签 javascript arrays string dictionary

我有一个由许多唯一字符串组成的数组,我想尽可能不循环地从中创建一个 map 对象,其中每个元素的键是一个唯一字符串,值默认为某个任意设置.

有没有一种方法可以在不循环的情况下在一行中执行此操作? IE。我想从

var colours = [ "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet" ];

var colourMap = {
    "Red":    VAL,
    "Orange": VAL,
    "Yellow": VAL,
    "Green":  VAL,
    "Blue":   VAL,
    "Indigo": VAL,
    "Violet": VAL
};

最佳答案

假设您的浏览器要求支持 Array.prototype.reduce

colours.reduce(function(obj, c){ 
  obj[c] = "VAL";
  return obj;
}, {})

或者如果你可以接受做一个 SCSS 并使用大多数 js 开发人员甚至不知道存在的语法

colours.reduce(function(obj, c){ return (obj[c] = "VAL", obj) }, {})

关于javascript - 如何从 Javascript 中的字符串列表创建映射(对象),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21530869/

相关文章:

java - 在 ListView 上滚动会创建重复的元数据项

java - 我可以改进这个 Pig-Latin 转换器吗?

javascript - 如何删除网格面板的标题? - ExtJs

c++ - 如何实现 array::max_size()?

javascript - 如何确定 JS 文件是否与 AMD 兼容?

java - 行主序地址计算

javascript - 如何使用 Mirth-Javascript 删除 HL7 消息中的换行符?

java - 如何在另一个方法中包含返回的字符串 - java

javascript - 嵌入 jquery.prettyPhoto 导致脚本显示在页面上

javascript - CSS 样式的单选按钮不响应键盘