【发布时间】:2014-11-06 21:23:19
【问题描述】:
给定数据,例如:
var people = [
{ 'myKey': 'John Kenedy', 'status': 1 },
{ 'myKey': 'Steeven Red', 'status': 0 },
{ 'myKey': 'Mary_Kenedy', 'status': 3 },
{ 'myKey': 'Carl Orange', 'status': 0 },
{ 'myKey': 'Lady Purple', 'status': 0 },
... // thousands more
];
如何高效获取myKey中包含字符串Kenedy的所有对象的列表?
注意:我目前使用str.search():
search("str") 返回匹配的位置。如果未找到匹配项,则返回 -1。
如下:
var map_partial_matches = function(object, str){
var list_of_people_with_kenedy = [] ;
for (var j in object) {
if (object[j]["myKey"].search(str) != -1) {
object[j].presidentName = "yes"; // do something to object[j]
list_of_people_with_kenedy.push({ "people": object[j]["myKey"] }); // add object key to new list
}
} return list_of_people_with_kenedy;
}
map_partial_matches(people, "Kenedy");
我可以使用str.match() 做同样的事情:
str.match()以数组对象的形式返回匹配项。如果未找到匹配项,则返回null。
无论如何它都有效,但我不知道它是否有效或完全转储。
【问题讨论】:
-
那不是 JSON。这是一个对象字面量的 javascript 数组。
-
附注:如果你想使用 lib,linq.js 非常好而且速度很快! linqjs.codeplex.com
-
这个问题似乎离题了,因为它更适合codereview.stackexchange.com
标签: javascript jquery arrays string