使用jQuery过滤数组

时间:2014-09-29 13:41:32

标签: javascript jquery

我有这个数组对象

var customers = [{
    "id": "1",
    "name": "1",
    "position": "1",
    "office": "<button data-id=2 class='btn btn-danger'><i class='fa fa-trash fa-lg'></i> Delete record</button>",
    "active": "1"
}, {
    "id": "2",
    "name": "2",
    "position": "2",
    "office": "<button data-id=2 class='btn btn-danger'><i class='fa fa-trash fa-lg'></i> Delete record</button>",
    "active": 0
}];

我需要的是制作一个只有活跃客户的新阵列,新阵列看起来像

var activeCustomers = [{
    "id": "1",
    "name": "1",
    "position": "1",
    "office": "1",
    "active":"1"
}
}];

因为您可能会看到只有一位活跃客户?

2 个答案:

答案 0 :(得分:1)

您可以在array.prototype(MDN reference

上使用.filter
var activeCustomers = customers.filter(function(customer) { return customer.active; });

注意:您必须在IE9下使用MDN polyfill进行浏览器支持。

答案 1 :(得分:1)

您可以使用jQuery函数grep

var activeCustomers = $.grep(customers, function(c){return c.active;});

请注意,这适用于所有浏览器;替代方法是使用Array.filter,这是JavaScript的一个(相对)新增功能,并且在某些旧版浏览器中会失败。