使用对象字面量作为哈希表是一个好的编程实践吗?

6

在使用对象字面量作为哈希表时,这种做法是否是好的实践?例如,使用属性名称作为键来获取特定映射值。

例如:

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

var hashTable = {}

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

这种使用对象字面量的方式是否可接受,或者JavaScript中是否有更好的处理哈希表的模式?

1
我认为这更像是一个代码审查问题,而不是一个适合在Stack Overflow上提问的问题。 - Mike Tung
3
没有所谓的JSON对象。JSON是一种文本数据格式。但使用对象字面量作为哈希表是常见做法。 - charlietfl
2
请注意,将对象用作哈希映射是一种完全合法的模式,但如果您可以使用ES6,则内置的Map类型也可用。 - CRice
是的,它可以序列化并且非常快,不像 Maps。但是需要注意一些隐式属性,例如 "toString","hasOwnProperty" 等等。 - dandavis
1个回答

8

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


不知道他在ES6中的变化。正是我正在寻找的。谢谢。 - Bradley Morris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接