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