14

私が達成しようとしているのは、配列内の最小数とその初期位置を見つけることです。これが何をすべきかの例です:

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

したがって、最終的には3番と1番の位置を知る必要があります。ここも見ました: Javascriptの配列から最小値を取得しますか? 、しかし、この方法では配列内の数値の位置がわかりません。ヒントやコード スニペットをいただければ幸いです。

4

7 に答える 7

15

配列をループして、最小の数値を探します。

var index = 0;
var value = temp[0];
for (var i = 1; i < temp.length; i++) {
  if (temp[i] < value) {
    value = temp[i];
    index = i;
  }
}

現在value、最小値がindex含まれており、配列内にそのような値がある最小インデックスが含まれています。

于 2013-03-16T22:09:19.217 に答える
7

使いたいindexOf

http://www.w3schools.com/jsref/jsref_indexof_array.asp

他の質問から、以前に持っていたコードを使用して:

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);
于 2013-03-16T22:09:48.690 に答える
1

reduce を使用して、 と比較できますInfinity

let minIndex = -1;
arr.reduce((acc, curr, index) => {
    if (curr < acc) {
        minIndex = index;
        return curr;
    } else {
        return acc;
    }
}, Infinity);
于 2020-10-19T18:26:20.407 に答える
1

Math.minおよびスプレッド演算子を使用して最小値を見つけます。

var minimumValue = Math.min(...temp);

次に、次を使用してインデックスを見つけますindexOf

var minimumValueIndex = temp.indexOf(minimumValue);

個人的にはスプレッド演算子よりも好きapplyです。

于 2021-05-28T13:34:37.137 に答える