2017-09-25 81 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。那就是我正在寻找的东西。所以现在我有一个方向要遵循。 –