Javascript - получение идентификатора объекта с помощью поиска - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть вложенный массив, и я знаю идентификатор человека (person.id), но пытаюсь найти идентификатор объекта. Так что «родительский» идентификатор.

{

         {
                "id": "12345",
                "person": {
                  "id": "435345345345345",
                  "first_name": "Jim",
                  "last_name": "Smith",
        },
 {
                "id": "56789",
                "person": {
                  "id": "3434534534543",
                  "first_name": "Tony",
                  "last_name": "Black",
        },

}

Возвращает человека

const id = this.people.find(person  => person.id === myid)


{
  "id": "435345345345345",
  "first_name": "Jim",
  "last_name": "Smith",
},

Однако я не вижу очевидного способа получить идентификатор (12345). Я рассмотрел все стандартные функции массива, но, похоже, ничего не подходит.

Ответы [ 2 ]

0 голосов
/ 07 ноября 2018

Вы можете использовать Array.find() метод!

var myid = '435345345345345';

var  users = [
  {
    "id": "12345",
    "person": {
      "id": "435345345345345",
      "first_name": "Jim",
      "last_name": "Smith",
    }
  },

  {
    "id": "56789",
    "person": {
      "id": "3434534534543",
      "first_name": "Tony",
      "last_name": "Black",
    },
  }
];

var result = users.find(obj => obj.person.id === myid);
console.log('Object: ' + result);
console.log('Required ID: ' + result.id);
0 голосов
/ 07 ноября 2018

Я знаю, что вы, вероятно, хотите придерживаться стандартной библиотеки, но вы можете попробовать сделать это с помощью команды lodash, https://lodash.com/docs/4.17.10#find

Вот пример, возвращающий весь объект:

https://runkit.com/rgomezs4/5be32606c9a3790013b4e4fc

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...