2017-05-03 3 views
3
var arr = [a, b, c]; 

In obigen Array Index 0 enthält "a", Index 1 enthält "b", Index 2 "c" enthält.Druckarray-Werte durch ein sich wiederholendes Muster

console.log(arr[0]) // will print > "a" 
console.log(arr[1]) // will print > "b" 
console.log(arr[2]) // will print > "b" 

Gibt es eine Möglichkeit, so dass, wenn ich console.log(arr[3]) wollen, dann sollten sie "a" wieder drucken, console.log(arr[4])"b" sein würde und so weiter. Wenn wir einen Index von sagen wir 42 wie diesen console.log(arr[42]) wollen, dann sollte es jeden dieser drei Zeichenfolgenwerte drucken, indem wir demselben Muster folgen.

Antwort

3

einfach mit % wie dieser arr[value % arr.length].

var arr = ['a', 'b', 'c']; 
 

 
function finding(val){ 
 
return arr[val % arr.length]; 
 
} 
 
console.log(finding(0)) 
 
console.log(finding(1)) 
 
console.log(finding(2)) 
 
console.log(finding(3)) 
 
console.log(finding(4)) 
 
console.log(finding(5)) 
 
console.log(finding(6)) 
 
console.log(finding(42))

+1

Einfache und elegante Lösung geben definieren. –

1

Wir nicht genau haben, was Sie suchen. Aber was können wir haben, was Sie suchen dieses für

var arr = ["a","b","c"]; 
var printToThisIteration = function(n){ 
    var length = arr.length; 
    for(i=0;i<n;++i) 
    { 
     console.log(arr[i%length]) 

    } 
} 
1

% Verwenden Sie können es so oft haben wiederholen, wie Sie möchten.

var arr = ['a','b','c']; 
 

 
let repetitions = 5; 
 

 
for(var i = 0; i < repetitions; i++){ 
 
    console.log(arr[i%3]); 
 
}

2

Wir können unsere eigene Funktion, die den entsprechenden Index

function getIndex(num){ 
 
    return num%3;/* modulo operator*/ 
 
} 
 
var arr=["a","b","c"]; 
 
console.log(arr[getIndex(0)]); 
 
console.log(arr[getIndex(1)]); 
 
console.log(arr[getIndex(2)]); 
 
console.log(arr[getIndex(3)]); 
 
console.log(arr[getIndex(4)]); 
 
console.log(arr[getIndex(5)]); 
 
console.log(arr[getIndex(41)]);

Verwandte Themen