Показать сообщение отдельно
  #2 (permalink)  
Старый 13.06.2015, 11:09
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

функция фильтрации массива , любым количеством фильтров

фильтрация массива
function blender(arr, filters) {
    return arr.filter(function(el) {
        return filters.every(function(filter) {
            return filter(el)
        })
    })
};
var projects = [
    {
        id: 'pb-15001',
        name: 'ПБ-15.001',
        area: 200,
        thumbUrl: 'img/projects/p-15001/p15001-thumb.jpg',
        floors: 400,
        type: 'индивидуальный',
        bedrooms: 4
    },
    {
        id: 'pb-15001',
        name: 'ПБ-15.001',
        area: 300,
        thumbUrl: 'img/projects/p-15001/p15001-thumb.jpg',
        floors: 200,
        type: 'индивидуальный',
        bedrooms: 4
    },
    {
        id: 'pb-15002',
        name: 'ПБ-15.001',
        area: 200,
        thumbUrl: 'img/projects/p-15001/p15001-thumb.jpg',
        floors: 100,
        type: 'индивидуальный',
        bedrooms: 4
    }
]

fn = function(el) {
  return el['floors'] == 100
}
fn2 = function(el) {
  return el['area'] == 200
}
var test = blender(projects, [fn, fn2])
alert(JSON.stringify(test))

Последний раз редактировалось рони, 13.06.2015 в 11:11.
Ответить с цитированием