Javascript 数组中的最小数及其位置

Javascript 数组中的最小数及其位置,javascript,arrays,Javascript,Arrays,我试图实现的是找到数组中的最小数及其初始位置。下面是一个它应该做什么的示例: temp = new Array(); temp[0] = 43; temp[1] = 3; temp[2] = 23; 所以最后我应该知道3号和位置1。我在这里也看了一眼:,但这种方式并没有给我数组中的数字位置。欢迎提供任何提示或代码片段。只需在数组中循环并查找最低数量: var index = 0; var value = temp[0]; for (var i = 1; i < temp.length;

我试图实现的是找到数组中的最小数及其初始位置。下面是一个它应该做什么的示例:

temp = new Array();
temp[0] = 43;
temp[1] = 3;
temp[2] = 23;

所以最后我应该知道3号和位置1。我在这里也看了一眼:,但这种方式并没有给我数组中的数字位置。欢迎提供任何提示或代码片段。

只需在数组中循环并查找最低数量:

var index = 0;
var value = temp[0];
for (var i = 1; i < temp.length; i++) {
  if (temp[i] < value) {
    value = temp[i];
    index = i;
  }
}
var指数=0;
var值=温度[0];
对于(变量i=1;i

现在,
value
包含最低的值,
index
包含数组中存在该值的最低索引。

是否要使用
indexOf

使用之前的代码,从另一个问题:

temp = new Array();
temp[0] = 43;
temp[1] = 3;
temp[2] = 23;

Array.min = function( array ){
    return Math.min.apply( Math, array );
};

var value = temp.min;
var key = temp.indexOf(value);
一艘班轮:

alist=[5,6,3,8,2]

idx=alist.indexOf(Math.min.apply(null,alist))

请参阅此问题的“查找最大值”版本。这是简单而好的。之后可以使用索引获取元素。

下面是一个使用简单递归的解决方案。输出是一个包含最小编号的索引位置和最小编号本身的对象

const findMinIndex=(arr,min,minIndex,i)=>{
if(arr.length==i)返回{minIndex,min};
如果(arr[i]控制台日志(minIndex)
您可以使用reduce,并与
Infinity
进行比较

let minIndex = -1;
arr.reduce((acc, curr, index) => {
    if (curr < acc) {
        minIndex = index;
        return curr;
    } else {
        return acc;
    }
}, Infinity);
让minIndex=-1;
arr.reduce((acc、curr、index)=>{
如果(当前
使用
Math.min
和扩展运算符查找最小值:

var minimumValue = Math.min(...temp);
然后使用
indexOf
查找索引:

var minimumValueIndex = temp.indexOf(minimumValue);

我个人更喜欢排列运算符而不是应用

哦,天哪。我刚刚意识到我可以使用indexOf来找到最小数字的位置。Ed.T感谢您提到
indexOf
。它帮助了我。请不要只是张贴代码,解释代码的作用。