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

在上述陣列打印數組值, 索引0包含 「一個」, 索引1包含 「B」, 索引2包含 「C」。由重複圖案

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

有沒有辦法所以,如果我想console.log(arr[3])那麼就應該重新打印"a"console.log(arr[4])"b"等。如果我們想要一個像這樣的索引42這樣console.log(arr[42])那麼它應該按照相同的模式打印這三個字符串值中的任何一個。

回答

3

只需使用%像這樣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

簡單,優雅的解決方案我們的自定義功能。 –

1

我們不能讓你在尋找什麼。但是我們可以有你在找什麼這個

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

使用%你可以把它重複多次,只要你喜歡。

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

 
let repetitions = 5; 
 

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

2

我們可以定義這給適當的索引

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)]);