如果我的数据已经在数组中,那么哈希映射(javascript中的object()和map())的目的是什么?

时间:2018-04-03 06:43:40

标签: javascript arrays hashmap

如果我有一组数据:

var foo = ["james", "tony", "michael"]

如何迭代并将它放在Map()或Object()中效率更高?我想我试图找到一个示例,其中/如何使用哈希表中的数据与在数组中使用它的方式相比。

1 个答案:

答案 0 :(得分:0)

以下是一个例子:

假设您有一系列人员:

var persons = [{id: 3, name: "Michael"}, {id: 2, name: "Tony"}, {id: 1, name: "James"}];

在这种情况下,如果你想从这个数组中通过id获取一个人,你可以:

var id = 1;
var person = persons.find(p => p.id === id);

array.find循环遍历你的数组,找到id等于1的人,这就是问题(性能)

使用对象存储您的数据,如下所示:

var persons = {
   1: {id: 1, name: "James"},
   2: {id: 2, name: "Tony"},
   3: {id: 3, name: "Michael"}
}

通过它的身份来获得一个人是有效的:

var id = 2;
var person = persons[id];

简短而有效(无循环)