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)

mariklozik 08.06.2017 19:16

Поиск по массиву обьектов по многим параметрам
 
Здрасте, есть массив обьектов
[
    {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"}
]


Помогите написать функцию которая принимает обьект напр.
{id:1, name : "image_1"}

и выводит
[
    {id: 1, src: "../img/image.jpg", name: "image_1"}
]

если передадим массив обьектов, также должно вывести несколько обьектов в массиве
для одного свойства обьекта я и сам написать могу, но если их много - никак.
Спасибо большое

рони 08.06.2017 19:49

mariklozik,
а можно так ?
[{
    id: function(id) {
        return id == 1
    },
    name: function(name) {
        return name == "image_1"
    }
}]

mariklozik 08.06.2017 20:05

даже не знаю , думаю нет,
но оно сработает ))))

рони 08.06.2017 20:09

Цитата:

Сообщение от mariklozik
даже не знаю , думаю нет,
но оно сработает ))))

не осилил ... такой формат поиска вам удобен? да или нет?

mariklozik 08.06.2017 20:18

не удобен, так как могут быть разные свойства, и функция может тоже принимать всякую ересь )))

рони 08.06.2017 20:29

Цитата:

Сообщение от mariklozik
так как могут быть разные свойства, и функция может тоже принимать всякую ересь )))

не понял ничего ... но данный формат очень удобен например выбрать все данные с id от 2 до 5
pattern = [{id:function(id) {
   return id > 1 && id < 5
}}];

или все блоки в которых картинки jpg
pattern = [{src:function(src) {
  return /\.jpg$/.test(src)
}}];

можно смешивать

mariklozik 09.06.2017 00:10

могут быть разние свойства в json'e. и в функцию мы можем кинуть любой обьект, и просто свойства должны проверяться. и возвращяться те обьекты которые подпадают под все входящие свойства

рони 09.06.2017 00:25

Цитата:

Сообщение от mariklozik
и в функцию мы можем кинуть любой обьект, и просто свойства должны проверяться. и возвращяться те обьекты которые подпадают под все входящие свойства

что мешает использовать вместо
{id:1, name : "image_1"}

это ?
[{
    id: function(id) {
        return id == 1
    },
    name: function(name) {
        return name == "image_1"
    }
}]

рони 09.06.2017 00:35

Цитата:

Сообщение от mariklozik
Помогите написать функцию которая принимает обьект напр.

структура того что вы ищите, будет похожа на function blender из примера ниже

https://javascript.ru/forum/misc/563...tml#post374942

mariklozik 09.06.2017 00:36

ети входные обьекты будут сгенерированы и приходить с иного места, и мы не сможем предугадать какие свойства там будут. Но те которые будут, надо сравниваться с теми которые есть


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