如何使用Javascript indexOf方法索引key尋找物件陣列object array?

6 月 26, 2019 | | 0 條留言

獲取包含物件的陣列的索引的最佳方法是什麼?

想像這種情況:

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.