我们可以急速发明这个办法有改进的处所,因为haystack.forEach轮回总会遍历所有的元素,即使我们可以很快找到一个匹配的元素。如今让我们应用for轮回来编写一个更好的版本。
- function isIn(haystack, needle) {
- for (var i = 0, len = haystack.length; i < len; i++) {
- if (haystack[i].toLowerCase() === needle.toLowerCase()) {
- return true;
- }
- }
- return false;
- }
- console.log(isIn(['a','b','c'], 'B')); // true
- console.log(isIn(['a','b','c'], 'd')); // false
如今我们来看哪个函数更快一些。我们可以分别运行每个函数10次,然后收集所有的测量结不雅:
- function isIn1(haystack, needle) {
- var found = false;
- haystack.forEach(function(element) {
- if (element.toLowerCase() === needle.toLowerCase()) {
- found = true;
- }
- });
- return found;
- }
- function isIn2(haystack, needle) {
- for (var i = 0, len = haystack.length; i < len; i++) {
推荐阅读
正则表达式是一种字符模式,用于在查找过程中匹配制订的字符。元字符平日在Linux平分为两类: Shell元字符,由Linux Shell进行解析; 正则表达式元字符,由vi/grep/sed/awk等文本处理>>>详细阅读
本文标题:测试JavaScript函数的性能
地址:http://www.17bianji.com/lsqh/36647.html
1/2 1