在JavaScript数组中到最⼩元素的位置
在JavaScript数组中到最⼩元素的位置
注* 之前有篇⽂章介绍过数据遍历的性能⽐较: for in ⽐for loop慢⾄少20倍 ,这是另外⼀篇⽐较数组查性能的例⼦,通过对⼿
⼯/indexOf/reduce三者的⽐较,再次映证,内置函数不⼀下⽐⼿⼯写的函数快。
indexof的用法javascript今天的⼩程序甚⾄不是⼀个程序。这只是⼀个函数。
问题陈述如下:
给定⼀个⾮空的JavaScript数字数组,到最⼩值的索引。(如果最⼩值出现不⽌⼀次,那么任何此类索引是可以接受的。)
1.⼀个解决⽅案是进⾏简单的⼿动操作,模拟⽤纸笔如何执⾏操作:⾸先,你假设第⼀个元素是赢家,然后你遍历其他元素。如果你的下⼀个元素⼩于第⼀个元素,那么你声明这个元素是新的临时的赢家。
function indexOfSmallest(a) {
var lowest = 0;
for (var i = 1; i < a.length; i++) {
if (a[i] < a[lowest]) lowest = i;
}
return lowest;
}
2.另⼀种解决⽅案是使⽤reduce内联函数本质来运⾏循环,所以你只需要提供初始猜测和if语句的业务逻辑。
function indexOfSmallest(a) {
duce(function(lowest, next, index) {
return next < a[lowest] : index ? lowest; },
0);
}
3.第三个解决⽅案是使⽤JavaScript 内联函数到最⼩的元素,然后将元素转换为其索引。
function indexOfSmallest(a) {
return a.indexOf(Math.min.apply(Math, a));
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论