鉴于数据如:列出包含给定字符串的键?
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()
:
搜索( “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数组。 – 2014-09-12 16:22:41
只是一个方面说明:如果你想使用一个库,linq.js是非常好,快! http://linqjs.codeplex.com/ – 2014-09-12 16:22:46
这个问题似乎是脱离主题,因为它更适合http://codereview.stackexchange.com/ – 2014-09-12 16:24:26