我最近开始放弃在我的(一些)项目中过度使用下划线/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/