美文网首页
在JavaScript数组中找到最小元素的位置

在JavaScript数组中找到最小元素的位置

作者: thekings | 来源:发表于2020-01-13 13:45 被阅读0次

在JavaScript数组中找到最小元素的位置

注*  之前有篇文章介绍过数据遍历的性能比较: for in 比for loop慢至少20倍 ,这是另外一篇比较数组查找性能的例子,通过对手工/indexOf/reduce三者的比较,再次映证,内置函数不一下比手工写的函数快。

今天的小程序甚至不是一个程序。这只是一个函数。

问题陈述如下:

给定一个非空的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) {

return a.reduce(function(lowest, next, index) {

                  return next < a[lowest] : index ? lowest; },

                0);

}

3.第三个解决方案是使用JavaScript 内联函数找到最小的元素,然后将元素转换为其索引。

function indexOfSmallest(a) {

return a.indexOf(Math.min.apply(Math, a));

}

相关文章

  • 在JavaScript数组中找到最小元素的位置

    在JavaScript数组中找到最小元素的位置 注* 之前有篇文章介绍过数据遍历的性能比较: for in 比fo...

  • Python 实现选择排序

    选择排序算法步骤: 找到数组中最小的那个元素中, 将它和数组的第一个元素交换位置, 在剩下的元素中找到最小的元素,...

  • 最小向量积

    调整数组元素的位置使得两数组向量积最小 问题描述: 有长度为n的数组a,b,问如何调整数组内元素的位置使得 最小...

  • 选择排序

    原理 初始时在序列中找到最小(大)元素,放到序列的起始位置作为已排序序列;然后,再从剩余未排序元素中继续寻找最小(...

  • 二分法查找

    1,二分法查找,插入元素位置 2,数组旋转,求最小值问题 参考 旋转数组的最小元素

  • 选择排序

    排序简介 先在未排序队列中找到最小(大)元素,存放到排序队列的起始位置,再从剩余未排序元素中继续寻找最小(大)元素...

  • 排序算法02:选择排序

    算法介绍 首先,从[0,len]中找到数组中最小的元素,让它与第一个元素交换。接着从[1,len]中找出最小的元素...

  • 第k个元素

    尽量高效率的在一个乱序的数组中找到第k个大小的元素 如k=1,则为找到数组中最小的元素 思路: 1.可以先将数组排...

  • 算法排序---选择排序

    //选择排序:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素...

  • 选择排序——Python

    算法步骤首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。再从剩余未排序元素中继续寻找最小(大)元素...

网友评论

      本文标题:在JavaScript数组中找到最小元素的位置

      本文链接:https://www.haomeiwen.com/subject/ftggactx.html