我有一个由许多唯一字符串组成的数组,我想尽可能不循环地从中创建一个 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/