Каков наилучший способ найти индекс объекта из массива объектов - javascript - PullRequest
0 голосов
/ 16 марта 2020

Привет. Я пытаюсь найти индекс объекта, используя имя ключа.

Вот как я пытался получить индекс:

var Obj = [
  {
    BData: [
      {id: '1', name: 'C'},
      {id: '2', name: 'Java'},
    ]
  },
  {
    CData: [
      {ccode: '010', cname: 'US'}
    ]
  },
  {
    PData: [
      {id: '21', pname: 'pen'}
    ]
  }
];
var index = Obj.findIndex(x => x.CData);

с приведенным выше фрагментом извне Я могу получить индекс, но из фактической реализации получить -1, хотя ключ также существует. Данные также аналогичны приведенным выше, но не получают причину.

Ответы [ 2 ]

3 голосов
/ 16 марта 2020

У вас есть массив объектов с индексами, такими как 0, 1, 2.

x => x.CData ничего не вернет. Поэтому вам нужно найти индекс CData как ключ объекта внутри этого массива.

Obj.findIndex(x => Object.keys(x).indexOf('CData') > -1 )

Пожалуйста, попробуйте этот способ. Надеюсь, это поможет.

0 голосов
/ 16 марта 2020

Метод findIndex () возвращает индекс, если функция возвращает true, в данный момент вы ничего не возвращаете. Поэтому измените ваш код следующим образом: var index = Obj.findIndex(x => {return x.CData});

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