参见英文答案 >
Why most JavaScript native functions are slower than their naive implementations?1个
我想对我正在使用的函数进行基准测试,以确定对象数组中是否存在使用map()和some()的重复属性与另一个执行相同操作但在另一个内部使用for()的函数( ).
我想对我正在使用的函数进行基准测试,以确定对象数组中是否存在使用map()和some()的重复属性与另一个执行相同操作但在另一个内部使用for()的函数( ).
let array = [ { "value": 41},{ "value": 12},{ "value": 32} ]; let itens = array.map(x => x.value); let haveDuplicate = itens.some((item,idx) => itens.indexOf(item) !== idx);
与:
let array = [ { "value": 41},{ "value": 32} ]; let haveDuplicate = false; for (let i = 0; i < array.length; i++) { let x = array[i]; for (let j = (i + 1); j < array.length; j++) { if (array[j]) { let y = array[j]; if (x.value === y.value) { haveDuplicate = true; return; } else { haveDuplicate = false; } } } }
使用JsPerf我可以看到使用map()和some()的函数运行速度慢了90%~100%.
Click here to check the benchmark
有人能解释一下为什么吗?
编辑:这个问题与这个问题重复:Why most JavaScript native functions are slower than their naive implementations?
解决方法
原文地址:https://www.jb51.cc/js/157735.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。