如何从 Javascript 中的字符串列表创建地图(对象)

Com*_* 10 1 javascript arrays string dictionary

我有一个由许多唯一字符串组成的数组,如果可能的话,我想从它创建一个地图对象,其中每个元素的键是唯一字符串,并且该值默认为某个任意设置,而无需循环。

有没有一种方法可以在一行中完成此操作而无需循环?即我想从

var colours = [ "Red", "Orange", "Yellow", "Green", "Blue", "Indigo", "Violet" ];
Run Code Online (Sandbox Code Playgroud)

var colourMap = {
    "Red":    VAL,
    "Orange": VAL,
    "Yellow": VAL,
    "Green":  VAL,
    "Blue":   VAL,
    "Indigo": VAL,
    "Violet": VAL
};
Run Code Online (Sandbox Code Playgroud)

Geo*_*uer 5

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

colours.reduce(function(obj, c){ 
  obj[c] = "VAL";
  return obj;
}, {})
Run Code Online (Sandbox Code Playgroud)

或者如果你愿意成为一个混蛋并使用大多数 js 开发人员甚至不知道存在的语法

colours.reduce(function(obj, c){ return (obj[c] = "VAL", obj) }, {})
Run Code Online (Sandbox Code Playgroud)