我想知道如何使用JavaScript搜索大数组。
假设我们有一个由代表企业的元素组成的数组。数组中有几千个元素,它们是有时也有数组的对象。
在每个元素中都是一个关键,例如称为此类Makefile.PL
的类别。现在我只想找到具有如下类别的数组元素:
category: ["attr1", "attr2", "attr3"]
问题是数组中元素的其他键有时也有一个属性,其中“Restaurant”在名称后跟其他内容,例如“RestaurantPrice”所以
category: ["Restaurant"]
不能正常工作,因为它会返回“餐厅”这个词的所有出现或者我错了吗?
如果不是,我应该如何搜索数组中的特定内容?
答案 0 :(得分:0)
如果categories
是["foobar", "foo"]
categories.indexOf("foo")
会返回1
, foobar 会被忽略。
另一个问题是how to find elements efficient?
。
这取决于,如果您的设置是静态的,您可以预先构建并缓存某种索引,如:
var categoriesMap = {
foobar: [1, 2, 4],
foo: [1, 5, 7]
}
数组将表示项目的索引,其中包括给定的类别。
答案 1 :(得分:0)
如果您的密钥是唯一的,请尝试使用HashMaps。