假设我们有一个这样的数字数组-
const arr = [1,2,3,4,1,7,8,9,1];
假设我们要查找数组中最小元素的索引。为此,我们可以简单地使用-
const min = Math.min.apply(Math, arr); const ind = arr.indexOf(min);
此代码将成功将ind设置为0,这确实是正确的。
但是我们要实现的是,如果数组中有多个最小元素,例如上面的数组(3个),那么我们应该返回一个包含所有最小元素索引的数组。
因此,对于此数组,我们所需的输出为-
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 ]