2017-01-02 2 views
-1

Давайте предположим, что у нас есть массив объектов, как это:фильтр массив объектов, если условие не является нулевым

var people = [ 
    {first: "John", last: "Doe"}, 
    {first: "Alan", last: "Doe"}, 
    {first: "John", last: "Black"} 
]; 

Как мы можем отфильтровать этот массив в JQuery, если только одно условие выбирается пользователем, экземпляр, который он хочет, имеет только имена последних Doe (с использованием формы выбора с двумя полями: имя, фамилия), поэтому первое имя не выбрано.

Заранее спасибо.

+0

HTTP://api.jquery.com/filter/ –

+0

https://jsfiddle.net/aghosh08/bL8bxk02/ –

+0

Существует одна проблема. Как было предложено в вопросе, есть выбор формы с двумя полями - имя, фамилия. Выбор анализируется как массив из двух элементов. Если выбрано только одно поданное (например, фамилия), другое поле передается как null. Какая фильтрация будет выглядеть с одним полем null или нет? – BillCode

ответ

2

Как предложил использование .filter() для фильтрации массива:

var people = [ 
 
    {first: "John", last: "Doe"}, 
 
    {first: "Alan", last: "Doe"}, 
 
    {first: "John", last: "Black"} 
 
]; 
 

 
var filteredPeople = people.filter(function(person){ 
 
    return person.last === 'Doe' 
 
}); 
 

 
console.log(JSON.stringify(filteredPeople, 4, 0));

+0

Есть одна проблема. Как было предложено в вопросе, есть выбор формы с двумя полями - имя, фамилия. Выбор анализируется как массив из двух элементов. Если выбрано только одно поданное (например, фамилия), другое поле передается как null. Какая фильтрация будет выглядеть с одним полем null или нет? – BillCode

Смежные вопросы