【发布时间】:2011-03-15 11:43:36
【问题描述】:
我需要创建一个可搜索项的数组,但我不确定我应该创建一个自定义对象数组还是只创建一个分隔字符串数组。有人可以给我一些建议,哪个是更好的方法。下面是一个例子:
var Arr = [ "Arts Tower|ArtsTower.htm|104",
"Arts Tower|ArtsTower.htm|1203",
"Arts Tower|ArtsTower.htm|Arts Tower"
];
var searchTerm = "tow"
var ArrResults = jQuery.grep(Arr, function(value, index){
return (value.split("|")[2].toLowerCase().indexOf(searchTerm) != -1);
});
或
function Item(name, url, str){
this.name = name;
this.url = url;
this.str= str;
}
var Arr = new Array();
Arr.push(new Item("Arts Tower", "ArtsTower.htm", "104"));
Arr.push(new Item("Arts Tower", "ArtsTower.htm", "1203"));
Arr.push(new Item("Arts Tower", "ArtsTower.htm", "Arts Tower"));
var searchTerm = "tow"
var ArrResults = jQuery.grep(Arr, function(value, index){
return (value.str.toLowerCase().indexOf(searchTerm) != -1);
});
我需要搜索数组并返回任何匹配项。哪个表现更好?
【问题讨论】:
-
据我所见,性能几乎相同 - 只有数百万个项目您会注意到任何差异。除了性能,第二种方法更优雅,所以我建议使用它。
标签: javascript jquery arrays