2017-09-25 74 views
-1

a)下面的方法(性能明智)之間有任何區別嗎?Javascript array.find對象的屬性值

b)這個(.find)函數是否遍歷數組中的所有對象?

c)這個函數還有另一種語法嗎?

#1 console.log(cres.find(o => o.name === refname)); 

#2 console.log(cres.find(function(o){return o.name===refname;})); 

我正在尋找最有效的方式來通過它的大數組中的屬性值來查找對象。那麼,實現一個自定義函數(I.e:BTREE)會是一個更好的方法嗎?

THX

UPDATE:除了 「向下票」。我已經瞭解到#1中的情況只是功能的一種奇特符號(Es6)。所以基本上兩種情況都是一樣的。

不管怎麼說,它沒有解釋過,如果陣列中的所有對象和.find功能重複。如果這是一個自定義實現會比較performatic的情況下...

+0

https://jsperf.com/測試並找出 – epascarello

+0

https://stackoverflow.com/questions/44030645/are-arrow-functions-faster-more-performant-lighter-than-ordinary-standalone-f – epascarello

+0

@epascarello這是沒有必要測試,因爲我想找出a)哪個方法用於構建函數和b)我不知道es6標準。所以你的評論和反對票沒有太大的幫助...... –

回答

1

一)/ C)沒有區別,選項1只是使用ES6語法。 您可以在此處查看文檔:http://es6-features.org/#ExpressionBodies

b).find將迭代數組,直到找到結果,然後停止。 Reference

+0

Thanx。那就是我正在尋找的東西。所以現在我有一個方向要遵循。 –