我有一个对象数组,如下所示:
var companies = [
{ "name" : "Company 1",
"logo" : "/logo.gif" },
{ "name" : "Company 2",
"logo" : "/logo2.gif" },
{ "name" : "Company 3",
"logo" : "/logo3.gif" } ];
Run Code Online (Sandbox Code Playgroud)
我想过滤此数组以仅获取具有另一个数组中存在的名称的值:
var myCompanies = [ "Company 1", "Company 3" ];
Run Code Online (Sandbox Code Playgroud)
在此示例中,要返回的数据将是:
var companies = [
{ "name" : "Company 1",
"logo" : "/logo.gif" },
{ "name" : "Company 3",
"logo" : "/logo3.gif" } ];
Run Code Online (Sandbox Code Playgroud)
最好的方法是什么?
您可以使用这样$.grep()来获取新的过滤数组
var result = $.grep(companies, function(e) {
return $.inArray(e.name, myCompanies) != -1;
});
Run Code Online (Sandbox Code Playgroud)
你可以在这里测试一下.请注意,这比$.each()循环执行得更好,您可以在此处测试它:http://jsperf.com/each-vs-grep
| 归档时间: |
|
| 查看次数: |
3269 次 |
| 最近记录: |