javascript - javascript 上 find() 和 filter().shift() 的区别

标签 javascript ecmascript-6

我最近开始放弃在我的(一些)项目中过度使用下划线/lodash,并意识到没有完全支持 find浏览器中的方法。 ES6方法find有什么区别?并在 filter 上使用 .shift()结果

var user = users.find(function() { ... } );

var user = users.filter(function() { ... } ).shift();

我想对“find”方法有明显的优化(停止迭代第一场比赛),但我可以使用第二种方法获得意想不到的结果吗?我应该使用 polyfill 吗?反而?为什么?

最佳答案

是的,除了明显(和明显)的开销之外,结果可能会有所不同。 filter 运行到数组末尾,并在每个项目上调用其回调;与 find 相比,它在找到一个后停止。当回调在这些额外迭代的元素之一上抛出异常时,结果是不同的。
我看不出有什么理由不使用 find

关于javascript - javascript 上 find() 和 filter().shift() 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33759109/

相关文章:

javascript - 将链接显示为 <a> 标签但不允许其他标签?

javascript - 如何控制台记录 promise ?

javascript - 如何让 jQuery 代码完成在 Sublime Text 2 中工作?

javascript - 为什么通过实例调用 "get method"不需要括号(分组运算符)?

javascript - 状态应该是嵌套的还是扁平的

javascript - 将单选按钮问题部分明智地显示为 HTML/JS 页面的选项卡

javascript - 构造函数和原型(prototype)方法中的 ES6 super()

javascript - for..of 循环定义中 let 和 const 的用法

node.js - 使用 Mongoose 的抽象类

javascript - 在javascript中多次使用扩展运算符?