0

私はこのような配列をいくつか持っています。配列内の数字はスロット番号を表しますslot1 = {3,4,5,6} slot2 = {1,2,3,4,5,6}
選択したスロットが連続しているかどうかを調べています。
最初の 2 つの配列は、正しい最小値、最大値を示します。しかし、3 番目の配列は最小 = 10、最大 = 9 を与えています。それを修正する方法は?私はこのような最大値を見つけています

for(var s=0;s<no_slots;s++)//finding maximum value of slots array
        {    
             if(s == 0)
             { 
              var slots_max = slots[s];
             }
             else
             {
                    if(slots[s] > slots_max)
                    {
                      slots_max = slots[s];
                    }
             }              
        }  
4

3 に答える 3

3

JSMathオブジェクトを使用します。

最小の場合:Math.min.apply(null,slots);
最大の場合:Math.max.apply(null,slots);

于 2013-07-16T07:46:34.153 に答える
2

3番目のケースで機能が正しく機能しない理由がわかりません。おそらく、初期化などのばかげたことやそれに似たものを見逃しているでしょう。あなたのいくつかのコードを変更したので、正しく返されています。短くすることもできます。

var slots = [8, 9, 10]
var slots_max = slots[0];
for (var s = 0; s < slots.length; s++) //finding maximum value of slots array
{
   if (slots[s] > slots_max) {
         slots_max = slots[s];
      }
}
alert(slots_max);

JSフィドル

于 2013-07-16T07:51:03.773 に答える
1

Math代わりに、Javascriptライブラリを使用して最小値/最大値を見つけてみてください。これにより、正しい結果が返されるはずです。

var min = Math.min.apply(null, slots3);
var max = Math.max.apply(null, slots3);

詳細については、この回答を参照してください。

于 2013-07-16T07:46:43.917 に答える