如何根据一个JavaScript数组的值来检索一个项目的索引

47 阅读1分钟

下面是如何根据一个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`