javascript使用as模式循环遍历数组

时间:2015-11-07 18:33:29

标签: javascript arrays loops

我有阵列:

array = ["One","Two","Three","Four"]

我希望通过像

这样的循环将其用作模式
for(var i=0; i<10; i++){

动态获取数组索引中的值,因此在这种情况下我的目标是:

one two three four one two three four one two

5 个答案:

答案 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]