大佬教程收集整理的这篇文章主要介绍了javascript – 优化 – 获取数组中的第三大数字,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的问题是,如何优化此代码?@R_736_10675@用哪些其他方法?
function thirdGreatest (arr) { arr.sort(function(a,b) { if (a < b) { return 1; } else if (a > b) { return -1; } else { return 0; } }); for ( var i = 0; i < arr.length; i++) { for (var j = 1; j < arr.length; j++) { for (var k = 2; k < arr.length; k++) { if (arr[i] > arr[j]) { if (arr[j] > arr[k]) { return arr[k]; } } } } } } console.log(thirdGreatest([5,3,23,7,2,5,10,24,31,31])); // 23 console.log(thirdGreatest([5,31])) // 23 console.log(thirdGreatest([5,4])); // 4 console.log(thirdGreatest([2,4])); // 3
var seen = [arr[0]]; for (var i = 1; i < arr.length; i++) { if (arr[i] !== seen[0]) { if (seen.length === 2) { return arr[i]; } seen.unshift(arr[i]); } }
function thirdGreatest (arr) { arr.sort(function(a,b) { return b - a; }); var seen = [arr[0]]; for (var i = 1; i < arr.length; i++) { if (arr[i] !== seen[0]) { if (seen.length === 2) { return arr[i]; } seen.unshift(arr[i]); } } } console.log(thirdGreatest([5,4])); // 3
注意:您可以简化排序回调
arr.sort(function(a,b) { return b - a; }); // With arrow functions: // arr.sort((a,b) => b - a);
回调必须返回一个更大,更小或等于0的数字,它不必完全是-1或1.
以上是大佬教程为你收集整理的javascript – 优化 – 获取数组中的第三大数字全部内容,希望文章能够帮你解决javascript – 优化 – 获取数组中的第三大数字所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。