0

配列に入力した数値から最大の数値を見つけるにはどうすればよいですか?

私がすでに試したこと:

var largest = Math.max.apply(Math, number[i]);
var smallest = Math.min.apply(Math, number[i]);
4

6 に答える 6

8

あなたはとても近いです:

Math.max.apply(Math, number);

配列のすべての要素をメソッドに渡す必要がありmax()ます。[i]ここでは意味がありません。

于 2012-09-09T20:42:16.073 に答える
3

Math.max.apply は他の回答で述べたようなオプションですが、reduce は言語間でより一般的だと思います:

var number=[1,2,3,2,1,1]; 
number.reduce(function(a,b){return a>b ? a : b;});
// returns 3
Math.max.apply(Math.max, number);
// returns 3
于 2012-09-09T20:56:54.210 に答える
2
var max = number[0], i = 0;


for (i = 0; i < n; ++i) {
  if (number[i] > max) {
    max = number[i];
  }
}

またはunderscore.jsをお勧めします

var max = _.max(number);
于 2012-09-09T20:44:51.270 に答える
1

あなたは近くにいます、これを試してください:

Math.max.apply(Math.max, number);

つまり、2 番目の引数は、配列を引数のリストに変換します。

(実際、Math.maxthisを必要としないため、 applyの最初の引数は必要ありません。そのため、Math.max.apply(null, number)orMath.max.apply('aaaaahhh', number)も機能します。)

于 2012-09-09T20:42:03.513 に答える
0
function compare(a, b) {

  if (a > b) return 1
  else if (a < b) return -1
  else return 0
}

var arr = [ 1, 2, 15, 12.5, 16, 3.35 ]

arr.sort(compare)

alert( arr[2] ) // your n number


// i used sort() but because by default it sorting in lexicographical order i 
passed it throuth custom comparisom , it works fine for me
于 2014-01-19T03:21:43.760 に答える