2014-09-29 3 views
0

У меня есть этот массив объектовФильтр массив с помощью 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" 
} 
}]; 

Потому что вы можете видеть, что есть только один активный клиент?

+0

Переменная 'activeCustomers', которую вы используете, недействительна JSON. Есть дополнительный конец. Кроме того, вы хотите, чтобы «офис» был 1? Похоже, вы хотели бы, чтобы «офис» сохранял то же значение, поскольку вы никогда не говорили об этом иначе. –

+0

Это не json, это объекты в массиве –

+0

JSON означает JavaScript Обозначение объекта и 'activeCustomers' недействительны. –

ответ

1

Вы можете использовать .filter на Array.prototype (MDN reference)

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

Примечание: Вы должны использовать polyfill MDN для поддержки браузера ниже IE9.

+0

Вы пробовали это? –

+0

Да ... Это работает. –

+0

Пожалуйста, дайте нам рабочую скрипту –

1

Вы можете использовать функцию JQuery grep:

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

Обратите внимание, что это будет работать во всех браузерах; альтернативным подходом было бы использовать Array.filter, который является (относительно) новым дополнением к JavaScript и не будет работать в некоторых старых браузерах.

+0

Этот возврат пустой –

+0

Пожалуйста, убедитесь, что у вас есть мое последнее редактирование (я пропустил заявление о возврате изначально) – codebox

+0

Любая рабочая скрипка –