我有阵列:
array = ["One","Two","Three","Four"]
我希望通过像
这样的循环将其用作模式for(var i=0; i<10; i++){
动态获取数组索引中的值,因此在这种情况下我的目标是:
one two three four one two three four one two
答案 0 :(得分:0)
如果你想要一个无限循环,只需创建一个这样的:
var num = 0;
while(true) {
var element = array[num];
if(num == array.length - 1) {
num = 0;
} else {
num++;
}
//when you are done
//break;
}
您可以将元素变量用作数组中的每个字符串或元素。当你完成后,只需要打电话'休息'。
答案 1 :(得分:0)
我想你想做类似下面的事情,你想得到的索引是i % array.length
(JavaScript中的代码):
var array = ["One","Two","Three","Four"];
var results = [];
for (var i = 0; i < 10; i++) {
var word = array[i % array.length];
results.push(word);
// console.log(word);
}
console.log('this is the result: ' + results);
答案 2 :(得分:0)
这只是打印您正在寻找的输出的逻辑
语法可以随任何语言而变化
var l=array.length
counter=0
for(var i=0; i<10; i++){
if(counter=l){
print array[counter]
counter=0
}
else
{
print array[counter]
counter=counter+1
}
}
答案 3 :(得分:-1)
var array = ["One", "Two", "Three", "Four"]
var limit = 10;
var asarray = true;
var newarray = concatArray(array, limit, asarray);
function concatArray(array, limit, asarray) {
var size = array.length, counter = 0, newarray = [];
for (var i = 0; i <= size; i++) {
i = (i === size) ? 0 : i;
if (counter <= limit) {
newarray.push(array[i]);
} else {
break;
}
counter++;
}
return newarray = (asarray === true) ? newarray : newarray.join(" ");
}
asarray = true
[“一”,“二”,“三”,“四”,“一”,“二”,“三”,“四”,“一”,“二”,“三”]
asarray = false
一二三四一二三四一二
答案 4 :(得分:-1)
您可以使用原始阵列连续多次连接到自己,甚至不更改原始阵列:
array.concat(array).concat(array).concat(array)
// ["One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four"]
此外,您可以使用一个函数,您可以在其中传递您希望重复数组的次数,这样您就不必处理所有concat
次调用。
var arr = [1, 2, 3, 4];
function concatArray(array, times) {
var result = [], i = 0;
for ( ; i < times; i += 1) {
result = result.concat(array);
}
return result;
}
concatArray(arr, 3); // [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]
最后,如果您想要将结果数组修改为具有一定数量的项目,或者过滤它们,或映射它们,或者其他任何项目,您可以向函数添加回调。
var arr = [1, 2, 3, 4];
function concatArray(array, times, cb) {
var result = [], i = 0;
for ( ; i < times; i += 1) {
result = result.concat(array);
}
if (cb && typeof cb == 'function') {
result = cb(result);
}
return result;
}
var final = concatArray(arr, 3, function(a) {
return a.slice(0, 10);
});
console.log(final) // [1, 2, 3, 4, 1, 2, 3, 4, 1, 2]