Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript使用as模式在数组中循环_Javascript_Arrays_Loops - Fatal编程技术网

javascript使用as模式在数组中循环

javascript使用as模式在数组中循环,javascript,arrays,loops,Javascript,Arrays,Loops,我有一个数组: array = ["One","Two","Three","Four"] 我想把它做成一个像 for(var i=0; i<10; i++){ 如果想要无限循环,只需创建如下循环: var num = 0; while(true) { var element = array[num]; if(num == array.length - 1) { num = 0; } else { num++; }

我有一个数组:

array = ["One","Two","Three","Four"]
我想把它做成一个像

for(var i=0; i<10; i++){

如果想要无限循环,只需创建如下循环:

var num = 0;
while(true) {
    var element = array[num];
    if(num == array.length - 1) {
        num = 0;
     } else {
        num++;
     }

     //when you are done
     //break;
}
array.concat(array).concat(array).concat(array)
// ["One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four"]

您可以使用元素变量作为数组中的每个字符串或元素。完成后,只需调用“break”。

如果需要无限循环,只需创建如下循环:

var num = 0;
while(true) {
    var element = array[num];
    if(num == array.length - 1) {
        num = 0;
     } else {
        num++;
     }

     //when you are done
     //break;
}
array.concat(array).concat(array).concat(array)
// ["One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four", "One", "Two", "Three", "Four"]

您可以使用元素变量作为数组中的每个字符串或元素。完成后,只需调用'break'。

我认为您需要执行以下操作,您需要获得的索引是
I%array.length
(JavaScript代码):

var数组=[“一”、“二”、“三”、“四”];
var结果=[];
对于(变量i=0;i<10;i++){
var word=array[i%array.length];
结果:推送(word);
//console.log(word);
}
log('这是结果:'+结果);

我认为您需要执行以下操作,您需要获取的索引是
I%array.length
(JavaScript代码):

var数组=[“一”、“二”、“三”、“四”];
var结果=[];
对于(变量i=0;i<10;i++){
var word=array[i%array.length];
结果:推送(word);
//console.log(word);
}
log('这是结果:'+结果);

这正是打印所需输出的逻辑

语法可以随任何语言而变化

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
}
}
var l=array.length
计数器=0

对于(var i=0;i,这正是打印所需输出的逻辑

语法可以随任何语言而变化

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
}
}
var l=array.length
计数器=0
对于(var i=0;i
var数组=[“一”、“二”、“三”、“四”]
var限值=10;
var asarray=真;
var newarray=concatArray(数组、限制、asarray);
函数concatArray(数组、限制、asarray){
var size=array.length,计数器=0,newarray=[];
对于(var i=0;i
var数组=[“一”、“二”、“三”、“四”]
var限值=10;
var asarray=真;
var newarray=concatArray(数组、限制、asarray);
函数concatArray(数组、限制、asarray){
var size=array.length,计数器=0,newarray=[];

对于(var i=0;i,您可以使用原始数组将其自身连接到任意次数,而无需像这样更改原始数组:

var num = 0;
while(true) {
    var element = array[num];
    if(num == array.length - 1) {
        num = 0;
     } else {
        num++;
     }

     //when you are done
     //break;
}
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];
函数concatArray(数组,时间){
var结果=[],i=0;
对于(;i<次;i+=1){
结果=result.concat(数组);
}
返回结果;
}
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]
var-arr=[1,2,3,4];
函数concatArray(数组、时间、cb){
var结果=[],i=0;
对于(;i<次;i+=1){
结果=result.concat(数组);
}
if(cb&&typeof cb=='function'){
结果=cb(结果);
}
返回结果;
}
var final=concatArray(arr,3,函数(a){
返回a.slice(0,10);
});
console.log(最终版)/[1,2,3,4,1,2,3,4,1,2]

您可以使用原始数组将其自身连接到任意次数,而无需像这样更改原始数组:

var num = 0;
while(true) {
    var element = array[num];
    if(num == array.length - 1) {
        num = 0;
     } else {
        num++;
     }

     //when you are done
     //break;
}
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];
函数concatArray(数组,时间){
var结果=[],i=0;
对于(;i<次;i+=1){
结果=result.concat(数组);
}
返回结果;
}
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]
var-arr=[1,2,3,4];
函数concatArray(数组、时间、cb){
var结果=[],i=0;
对于(;i<次;i+=1){
结果=result.concat(数组);
}
if(cb&&typeof cb=='function'){
结果=cb(结果);
}
返回结果;
}
var final=concatArray(arr,3,函数(a){
返回a.slice(0,10);
});
console.log(最终版)/[1,2,3,4,1,2,3,4,1,2]

->
var idx=i%array.length;
注意:这不是无限的,因为还有一个结束。它只是重复。你想退出循环吗?->
var idx=i%array.length;
注意:这不是无限的,因为还有一个结束。它只是重复。你想退出循环吗?你没有回答g问题。问题是关于在一个简单的循环中添加基于索引的数组值。这是一个典型的过度技巧,会生成速度非常慢的网站。这是一个更好的方法,更完整,我提供了一个更好的选项,有更多的控制和更好的机会创建可重用代码。它既不更完整,也不提供更好的控制。你不是回答这个问题。这个问题是关于在一个简单的循环中添加基于索引的数组值。这是一个典型的过度技巧,会生成速度非常慢的网站。这是一个更好的方法,更完整,我提供了一个更好的选项,有更多的控制和更好的机会创建可重用代码。它既不完整,也不提供更好的控制。