獲取包含物件的陣列的索引的最佳方法是什麼?
想像這種情況:
var myArray = [
//陣列的索引0
{
hello: 'leon',
foo: 'baz'
},
//陣列的索引1
{
hello: 'stevie',
foo: 'zoo'
}
]
在這個例子中,若想使用indexOf方法取得它將是。hello:\’stevie\’ 索引的值為 1要如何做呢?
map().indexOf()
在ES2015簡單的方法可以使用map函數在一行中解決它:
myArray.map(x => x.hello).indexOf('stevie');
map()的解決方案沒問題,但是你每次搜索都在迭代整個陣列。
findIndex()
或者,對於較大的陣列可能具有更好的性能,findIndex()的最壞情況,它會在找到匹配後停止迭代:
myArray.findIndex(x => x.hello === 'stevie');
Demo
See the Pen indexOf method in an object array? by Leon Cheng (@jq153387) on CodePen.