Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поиск по массиву обьектов по многим параметрам (https://javascript.ru/forum/misc/69248-poisk-po-massivu-obektov-po-mnogim-parametram.html)

рони 09.06.2017 01:44

фильтрация массива по заданным параметрам
 
mariklozik,
:( :( :( ... разговор слепого с глухим
function fn(arr, pattern) {
    return arr.filter(function(el) {
        return pattern.some(function(mask) {
            return Object.keys(mask).every(function(key) {
                return el[key] == mask[key]
            })
        })
    })
};
 var arr = [
    {id: 1, src: "../img/image.jpg", name: "image_1"},
    {id: 2, src: "../img/image.jpg", name: "image_2"},
    {id: 3, src: "../img/image.jpg", name: "image_3"},
    {id: 4, src: "../img/image.jpg", name: "image_4"},
    {id: 5, src: "../img/image.jpg", name: "image_5"}
],
pattern = [{id:1, name : "image_1"}];
alert(JSON.stringify(fn(arr, pattern)));

mariklozik 09.06.2017 09:22

спасибо, именно оно! а можно сделать без исп. стандартных методов ?

Alexandroppolus 09.06.2017 10:34

Цитата:

Сообщение от mariklozik
а можно сделать без исп. стандартных методов ?

странное пожелание..
посмотри как работают filter, some и every, сделай вместо них на циклах.
Object.keys замени на цикл for .. in, с проверкой hasOwnProperty


Часовой пояс GMT +3, время: 00:40.