Как получить индекс элемента в массиве JavaScript

Вот как получить индекс элемента в массиве JS на основе его значения

Предположим, у вас есть значение элемента, содержащегося в массиве, и вы хотите получить его индекс.

Как это получить?

Если элемент является примитивным значением, например строкой или числом, вы можете использоватьindexOfметод массива:

const letters = ['a', 'b', 'c']

const index = letters.indexOf(‘b’)

//index is 1

Помните, что индекс начинается с числа0

Если элемент является объектом, вы не можете использовать этот способ, потому что, если вы попытаетесь сделать:

const letters = [
  {
    letter: 'a',
  },
  {
    letter: 'b',
  },
  {
    letter: 'c',
  },
]

const index = letters.indexOf({ letter: ‘b’, })

indexбудет-1что означает, что товар не найден. Потому что объекты сравниваются по ссылке, а не по их значениям (иначе для примитивных типов). Объект переданindexOf- это совершенно другой объект, чем второй элемент в массиве.

Вы можете использоватьfindIndexтакое значение, которое запускает функцию для каждого элемента в массиве, которому передается элемент и его индекс. При возврате из него возвращаемое значение будет присвоено возвращаемому значениюfindIndex:

const letters = [
  {
    letter: 'a',
  },
  {
    letter: 'b',
  },
  {
    letter: 'c',
  },
]

const index = letters.findIndex((element, index) => { if (element.letter === ‘b’) { return true } })

//index is 1

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: