循环数组,用字符串打印

时间:2010-05-23 16:51:41

标签: javascript arrays

我有一个简单的数组:

var myArr=["one","two","three"];

我有一个计数循环,它将var i的值增加一。

我想要做的是每次循环运行时从数组中打印下一个值,在文本字符串旁边,如下所示:

alert('value number '+myArr[i]+);

但由于某种原因,我不能让这个工作。 以下代码有效,所以我假设我没有正确地调用计数器:

alert('value number '+myArr[0]+);

7 个答案:

答案 0 :(得分:11)

确保你正确地递增循环计数器(它应该从零开始并一直运行到数组中的最高索引),以及+末尾的迷路alert线被移除。

for (var i = 0; i < myArr.length; ++i) {
  alert('value at index [' + i + '] is: [' + myArr[i] + ']');
}

答案 1 :(得分:2)

for ( i = 0; i < miArray.length; i++ ){ 
    alert( 'value number ' + myArr[i] );
}

答案 2 :(得分:2)

使用内置函数

而不是循环
function myFunction() {
  var fruits = ["Banana", "Orange", "Apple", "Mango"];
  var x = fruits.valueOf();
  alert(x);
}

答案 3 :(得分:0)

按“下一个值”,是指当前索引的值+ 1?

for (var i=0; i < myArr.length; i++){
    console.log(myArr[i]); // value of current index
    if (i !== myArr.length - 1) { // if on last index then there is no next value
        console.log(myArr[i + 1]); // value of next index
    }    
}

答案 4 :(得分:0)

你在想一个迭代器吗?这是即将推出的标准,但它仅在javascript 1.7+中受支持,而现在只支持Firefox,并且您必须使用<script type="application/javascript;version=1.7"> ... Chrome将声称支持JavaScript 1.7 ,但它实际上不会支持任何东西。 [别问我为什么这样做]

只是为了证明它:

function yourIterator(arrayToGoThrough)
{
  for(var i = 0; i < arrayToGoThrough.length; i++)
  {
    yield arrayToGoThrough[i];
  }
}

var it = new yourIterator(["lol", "blargh", "dog"]);
it.next(); //"lol"
it.next(); //"blargh"
it.next(); //"dog"
it.next(); //StopIteration is thrown

请注意,这是新标准,您可能不想使用它=)...

你也可以“模拟”这样的迭代器:

function myIterator(arrayToGoThrough){
  this.i = 0;
  this.next = function(){
    if(i == arrayToGoThrough.length) //we are done iterating
      throw { toString: function(){ return "StopIteration"; } };
    else
      return arrayToGoThrough[i++];
  }
}

如果您想使用当前标准,您可以遍历数组

for(var i = 0; i < yourArr.length; i++) alert("yourArr["+i+"]: "+yourArr[i]);

答案 5 :(得分:0)

以下代码将使用箭头功能。简单和简化的代码

var myArr=["one","two","three"];
myArr.map((elements) => alert('value number' + " " + elements));

答案 6 :(得分:0)

你的第二个选项alert('value number '+myArr[0]+);,因为你在这种情况下定义数组索引就像0一样工作,但myArr [i]不工作,因为我没有定义所以如果指定i = 0然后第一个值工作,但主要的解决方案是使用循环和增量计数器并获得总数组使用myArr.length,其他明智的时间循环运行你不知道。

for (var i = 0; i < myArr.length; ++i) {
  alert('Array value at index [' + i + '] :  [' + myArr[i] + ']');
}

了解更多信息

https://www.w3schools.com/js/js_loop_for.asp