2017-01-17 11 views
0

の外にある場合でも、私は8位の配列持つ配列から項目を取得する方法:ユーザーのいずれかを取得するには8より大きい数を入力した場合、私は起こるしたい何インデックスが境界

var myArray = []; 
myArray[0] = "text1"; 
myArray[1] = "text2"; 
myArray[2] = "text3"; 
myArray[3] = "text4"; 
myArray[4] = "text5"; 
myArray[5] = "text6"; 
myArray[6] = "text7"; 
myArray[7] = "text8"; 

があります配列のテキストは[7]の後に配列の先頭から始まります。したがって、ユーザが10を入力すると、ユーザは位置「1」の値を「text2」とすることになる。私はこれをどうやってやることができますか?

+0

'(input%MyArray.length)'? 1つのインデックスがある場合はもう1つを追加してください – Hodrobond

+0

独自のメソッドを作成し、それにインデックスを渡してください –

答えて

4

あなたは「ラッピング」のシナリオのこれらの種類を扱う"remainder" modulo operatorを使用して経由してこれを実現できます。

function getArrayValueWithWrapping(array, index){ 
    return array[index % array.length]; 
} 
0

あなたは%(モジュロ)演算子を使用することができます。これは数字をとり、それを別のものに分割して残りを返します。例えば:

x = 9 % 8; 
// x == 1 

8 = 8月9日ので1の残りは、これは8よりも大きい数を返すことはありませんが、サイクルが残り(8%10 == 2、8%16 =を通して意志= 0)

1

divisionの残り、% (modulos)演算子を使用する必要があります。

var myArray = []; 
 
myArray[0] = "text1"; 
 
myArray[1] = "text2"; 
 
myArray[2] = "text3"; 
 
myArray[3] = "text4"; 
 
myArray[4] = "text5"; 
 
myArray[5] = "text6"; 
 
myArray[6] = "text7"; 
 
myArray[7] = "text8"; 
 
$('button').click(function(){ 
 
    alert(myArray[$('input').val()%8]); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="number"/> 
 
<button>Get Text</button>

1

私はそれがmyarrayの[インデックス%8]で動作すると思います。インデックスnrを呼び出すとします。 8モジュロは0を返します。 9、配列のインデックス1を取得します。

希望しました。

関連する問題