在 JavaScript 中查找数组中多个最小值的索引
假设我们有一个这样的数字数组:
const arr = [1,2,3,4,1,7,8,9,1];
假设我们想要找到数组中最小的元素的索引,即上面的 1。
为此,我们可以简单地使用:
const min = Math.min.apply(Math, arr); const ind = arr.indexOf(min);
以上代码将成功地将 ind 设置为 0,这确实是正确的。
但我们想要实现的是,如果数组中存在多个最小元素,例如上述数组(三个 1),那么我们应该返回一个包含所有最小元素索引的数组。
因此,对于此数组,我们期望的输出如下,即在索引 0、4 和 8 处找到三个 1:
const ind = [0, 4, 8]
我们需要编写一个 JavaScript 函数,它接收一个数字数组作为输入,并返回数组中所有最小元素的索引数组。
示例
以下是代码:
const arr = [1,2,3,4,1,7,8,9,1];
const minArray = arr => {
const min = arr.reduce((acc, val) => Math.min(acc, val), Infinity);
const res = [];
for(let i = 0; i < arr.length; i++){
if(arr[i] !== min){
continue;
};
res.push(i);
};
return res;
};
console.log(minArray(arr));输出
这将在控制台中产生以下输出:
[ 0, 4, 8 ]
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP