将对象文字用作哈希表是一种好习惯吗?

Bra*_*ris 5 javascript hash hashtable

将对象文字用作哈希表是一种好习惯吗?即使用属性名作为获取特定映射值的键.

例如:

var colorArray = [
    { code: "#4286f4", name: "Blue" }, 
    { code: "#fc4d02", name: "Red" }
]

var hashTable = {}

colorArray.forEach(color => {
  hashTable[color.code] = color.name
})
Run Code Online (Sandbox Code Playgroud)

这是对象文字的可接受用途,还是有一个模式可以更好地处理JavaScript中的哈希映射?

Ori*_*ori 8

在ES6之前使用文字对象是在JS中使用hashmap的唯一方法.从ES6开始,您还可以使用Map:

const colorArray = [{code: "#4286f4" , name: "Blue"}, {code: "#fc4d02", name: "Red"}];

const map = new Map(colorArray.map(({ code, name }) => [code, name]));

console.log(map); // look at the browser's console

console.log(map.get("#4286f4"));
Run Code Online (Sandbox Code Playgroud)