Найти индекс объекта в JavaScript, используя имя его свойства - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу найти индекс массива объектов javascript, используя имя свойства объектов.Мой код: -

const checkbox = [{'mumbai': true},{'bangalore': true},{'chennai': true},{'kolkata': true}];


Как я могу найти индекс Ченнаи?Могу ли я достичь с помощью lodash?

Ответы [ 2 ]

0 голосов
/ 13 февраля 2019
checkbox.map((v,i) => Object.keys(v).indexOf("chennai") !== -1 ? i : -1).filter(v => v !== -1)[0]

Даст вам индекс "chennai", замените его на любой другой ключ, чтобы получить другой индекс.

Что это значит:

  • Отобразить картумассив в массив с указанием только индексов, которые содержат объекты с требуемым ключом
  • Фильтровать только те индексы, которые вам нужны
  • Получить первый (вы можете использовать и остальные, если есть несколько записейсоответствует вашему запросу)

Это работает в любом браузере, так как использует только .map (), Object.keys () и .filter ()

0 голосов
/ 13 февраля 2019

Вы можете использовать .findIndex()

const checkbox = [
  {'mumbai': true},
  {'bangalore': true},
  {'chennai': true},
  {'kolkata': true}
];

const finder = (arr, key) => arr.findIndex(o => key in o);

console.log(finder(checkbox, 'chennai'));
console.log(finder(checkbox, 'kolkata'));
console.log(finder(checkbox, 'delhi'));
...