Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

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に正常に設定しますが、これは確かに正しいです。

しかし、達成したいのは、上記の配列(3つの1)のように、配列に複数の最小要素がある場合、最小要素のすべてのインデックスを含む配列を返す必要があるということです。

したがって、この配列の場合、必要な出力は次のとおりです。つまり、インデックス0、4、および8にある3つの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 ]

  1. JavaScriptのArray.prototype.find()メソッド。

    Array.prototype.find()メソッドは、配列内の特定の条件を満たす最初の要素値を返します。 以下は、Array.prototype.find()メソッドのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /&g

  2. 複数の値でJavaScript配列の要素を見つける方法は?

    以下は、JavaScript配列の要素を複数の値で検索するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs