如何在javascript中迭代数字列表

how to iterate list of numbers in javascript

本文关键字:迭代 数字 列表 javascript      更新时间:2023-09-26

我有一个动态列表,以的形式获取样本数据

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

如果我使用循环,它会给我像一样的数据

[
1
0
,
2
0
]

我需要数据作为

10
20

如果我复制并运行相同的代码,它将根据您的需要提供输出。无论你身在何处,获取数据的方式都是以字符串形式提供这些数据,即"[10,20]"。所以,现在它不是一个数组,而是一个包含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]);
    }

下面的代码考虑将数组字符表示为字符串。遍历每个字符。如果是左括号或右括号,则继续下一次迭代。,表示一个完整的数字。否则,将整数字符连接为字符串类型:

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/