Javascript array.按属性值查找对象
Posted
技术标签:
【中文标题】Javascript array.按属性值查找对象【英文标题】:Javascript array.find object by property value 【发布时间】:2017-09-25 23:58:25 【问题描述】:a) 下面的方法有什么区别(性能方面)?
b) 这个 (.find) 函数是否遍历数组中的所有对象?
c) 这个函数还有另一种语法吗?
#1 console.log(cres.find(o => o.name === refname));
#2 console.log(cres.find(function(o)return o.name===refname;));
我正在寻找通过大数组中的属性值来查找对象的最有效方法。那么,实现一个自定义函数(即:BTREE)会是更好的方法吗?
谢谢
更新:除了“否决票”。我了解到#1 中的案例只是函数(Es6)的一种奇特符号。所以基本上两种情况都是一样的。
无论如何,它没有解释 .find 函数是否遍历数组中的所有对象,如果是这种情况,自定义实现会更具性能...
【问题讨论】:
jsperf.com测试发现 ***.com/questions/44030645/… @epascarello 没有必要测试,因为我想知道 a) 用于内置函数的方法和 b) 我不了解 es6 标准。所以你的评论和反对票没有多大帮助.... 大声笑,你说你想知道什么更快,所以你可以测试它。我发布的链接告诉你它们是否不同。 如果您阅读 find 的文档,您就会知道它是停止还是搜索全部。 【参考方案1】:a) / c) 没有区别,选项 1 只是使用 ES6 语法。 你可以在这里查看文档:http://es6-features.org/#ExpressionBodies
b) .find
将遍历数组,直到找到结果然后停止。 Reference
【讨论】:
谢谢。这正是我一直在寻找的。所以现在我有了一个方向。以上是关于Javascript array.按属性值查找对象的主要内容,如果未能解决你的问题,请参考以下文章