使用对象文字作为散列 table 是一种好习惯吗?

Is it good practice to use a object literal as a hash table?

将对象字面量用作散列 table 是一种好习惯吗?即使用 属性 名称作为键来获取特定的映射值。

例如:

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

var hashTable = {}

colorArray.forEach(color => {
  hashTable[color.code] = color.name
})

这是对象字面量的 acceptable 用法,还是有一种模式可以更好地处理 JavaScript 中的哈希映射?

在 ES6 之前,使用文字对象是在 JS 中拥有哈希映射的唯一方法。从 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"));