Задать вопрос
AndreySolo
@AndreySolo

Как проверить наличие объекта в JSON?

[
  {
    id: '34bfd2234234177b17854d52'
    name: 'Miki',
    lastname: 'Adams',
    profession: 'Designer',
    email: 'mmm@gmail.com',
    online: true,
    admin: false,
    createdAt: Wed Jan 21 2015 19:24:56 GMT+0300 (MSK),
    updatedAt: Thu Jan 22 2015 17:22:47 GMT+0300 (MSK),
    avatar: '',
  },
  {
    id: '54bfd2d81b9b177b17854d52'
    name: 'Artur',
    lastname: 'Altman',
    profession: 'Designer',
    email: 'aaa@gmail.com',
    online: true,
    admin: false,
    createdAt: Wed Jan 21 2015 19:24:56 GMT+0300 (MSK),
    updatedAt: Thu Jan 22 2015 17:22:47 GMT+0300 (MSK),
    avatar: '',
  },
]

Как проверить наличие в таком массиве следующего объекта ?
[
  {
    id: '54bfd2d81b9b177b17854d52'
    name: 'Artur',
    lastname: 'Altman',
    profession: 'Designer',
    email: 'aaa@gmail.com',
    online: true,
    admin: false,
    createdAt: Wed Jan 21 2015 19:24:56 GMT+0300 (MSK),
    updatedAt: Thu Jan 22 2015 17:22:47 GMT+0300 (MSK),
    avatar: '',
  }
]
  • Вопрос задан
  • 6360 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
brutto
@brutto
Conceptmeister, Darudar
Нужную информацию можно найти вот тут:
https://developer.mozilla.org/ru/docs/Web/JavaScri...

PS: В примерах есть поиск по ID. =)
Ответ написан
Комментировать
hedint
@hedint
Senior front-end developer
Для двух объектов используется одинаковый id - это вообще законно?)
По теме: у вас должен быть какой-то критерий (группа критериев), которые позволяют однозначно отличать один объект от другого (по его полям) - и обычно это как раз id.
распарсить json в массив, обойти получившийся массив, проверить на соответствие этим уникальным критериям - соответствует, значит, это тот объект.
Ответ написан
huze
@huze
Lead Developer, Crowdspace
var objects = [
    {
        "id": "34bfd2234234177b17854d52",
        "name": "Miki",
        "lastname": "Adams",
        "profession": "Designer",
        "email": "mmm@gmail.com",
        "online": true,
        "admin": false,
        "createdAt": "Wed Jan 21 2015 19: 24: 56 GMT + 0300(MSK)",
        "updatedAt": "Thu Jan 22 2015 17: 22: 47 GMT + 0300(MSK)",
        "avatar": ""
    },
    {
        "id": "54bfd2d81b9b177b17854d52",
        "name": "Artur",
        "lastname": "Altman",
        "profession": "Designer",
        "email": "aaa@gmail.com",
        "online": true,
        "admin": false,
        "createdAt": "Wed Jan 21 2015 19: 24: 56 GMT + 0300(MSK)",
        "updatedAt": "Thu Jan 22 2015 17: 22: 47 GMT + 0300(MSK)",
        "avatar": ""
    }
];

Array.prototype.containsObjectWithId = function(id){
    return !!this.filter(function(el){
        return el.hasOwnProperty('id') && el.id == id
    }).length;
}

console.log(objects.containsObjectWithId('54bfd2d81b9b177b17854d52')) // true
console.log(objects.containsObjectWithId('ok, this id do not exist')) // false

jsfiddle.net/r1duq6cy
Ответ написан
Комментировать
miraage
@miraage
Старый прогер
collection.indexOf(object) !== -1

// upd

for (var i = 0, ii = collection.length; i < ii; ++i) {
  if (collection[i].id === object.id) {
    // your object
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы