如何在javascript中迭代数字列表

时间:2016-05-18 13:54:37

标签: javascript

我有一个动态列表,将样本数据提取为



var myStringArray = [10, 20];


var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
  alert(myStringArray[i]);

}
&#13;
&#13;
&#13;

如果我使用循环,它会给我像

这样的数据
[
1
0
,
2
0
]

我需要数据

10
20

2 个答案:

答案 0 :(得分:1)

如果我复制并运行相同的代码,它将根据需要提供输出。你从任何地方得到它的方式是用字符串给你这个数据,即&#34; [10,20]&#34;。所以,它现在不是一个数组,而是一个包含10个字符的字符串([,1,0,等等)。这就是你在循环中输出这些字符的原因。

var myStringArray = [10, 20];


var arrayLength = myStringArray.length;
for (var i = 0; i < arrayLength; i++) {
  alert(myStringArray[i]);

}

如果您从某些资源获取此值,例如ajax请求,您可以使用JSON.parse将其转换为数组,因此您的代码将变为:

var myString = "[10, 20]";
var myStringArray = JSON.parse( myString );


    var arrayLength = myStringArray.length;
    for (var i = 0; i < arrayLength; i++) {
      alert(myStringArray[i]);

    }

答案 1 :(得分:0)

以下代码认为数组字符表示为String。遍历每个角色。如果是开始或结束括号,则继续下一次迭代。 ,表示已完成的数字。否则将整数字符连接为String类型:

var arrayLength = myStringArray.length;
var dat = "";

var arrayLength = myStringArray.length;
var dat = "";

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

    if(myStringArray[i] == ","){
        alert(dat);  // alert the completed value
        dat = "";
    } else if(myStringArray[i] == "[" || myStringArray[i] == "]"){
        continue; // Move to the next iteration
    } else {
        dat += ("" + myStringArray[i]); //Concatenate strings
    }
}

但是,您的代码似乎在运行代码段时起作用。我想你可以使用我的例子作为视觉辅助,因为我已经分解了各个步骤。

另外,正如Felix Kling在我的评论中指出的那样,你也可以使用JSON.parse()

JSON.parse(myStringArray, function(key,val) {
        console.log(val);
});

这是一个小提琴:https://jsfiddle.net/7h4z6nsm/1/