我试图通过一个数组循环。我有以下代码:

 var currnt_image_list= '21,32,234,223';
 var substr = currnt_image_list.split(','); // array here

我试图把所有的数据从数组。有谁能指引我正确的道路吗?


当前回答

jQuery.each ()

jQuery.each ()

jQuery.each(array, callback)

数组的迭代

jQuery.each(array, function(Integer index, Object value){});

对象的迭代

jQuery.each(object, function(string propertyName, object propertyValue){});

例子:

var substr = [1, 2, 3, 4]; $.each(substr , function(index, val) { 控制台.log(索引,值) }); var myObj = { firstName: “skyfoot”}; $.each(myObj, function(propName, propVal) { console.log(propName, propVal); }); <script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”></script>

Javascript循环数组

for循环

for (initialExpression; condition; incrementExpression)
  statement

例子

Var substr = [1,2,3,4]; //从0索引循环到最大索引 For (var I = 0;I < substr.length;我+ +){ console.log(“循环”,substr(我)) } / /反向循环 For (var I = substr.length-1;I >= 0;我(){ console.log(“反向”,substr(我)) } / /步骤循环 For (var I = 0;I < substr.length;我+ = 2){ console.log(“一步”,substr(我)) }

因为在

//dont really wnt to use this on arrays, use it on objects
for(var i in substr) {
    console.log(substr[i]) //note i returns index
}

对的

for(var i of subs) {
    //can use break;
    console.log(i); //note i returns value
}

forEach

substr.forEach(function(v, i, a){
    //cannot use break;
    console.log(v, i, a);
})

资源

MDN循环和迭代器

其他回答

美元。地图数据,功能(elem) {...})

$.map(data,function(elem){
   console.log(elem);
})
            
   

使用jQuery each()。还有其他方法,但每一种都是为这个目的而设计的。

$.each(substr, function(index, value) { 
  alert(value); 
});

不要在最后一个数字后面加逗号。

选项1:传统的for循环

最基本的

传统的for循环有三个组成部分:

初始化:在第一次执行look块之前执行 condition:每次循环块执行前都会检查一个条件,如果为false则退出循环 事后考虑:每次循环块执行后执行

这三个组成部分被a隔开;的象征。这三个组件中的每一个的内容都是可选的,这意味着下面是最简单的for循环:

for (;;) {
    // Do stuff
}

当然,你需要包含一个if(condition === true) {break;}或if(condition === true){返回;}在for循环中的某个位置让它停止运行。

不过,初始化通常用于声明索引,条件用于将该索引与最小值或最大值进行比较,事后考虑用于增加索引:

for (var i = 0, length = 10; i < length; i++) {
    console.log(i);
}

使用传统的for循环遍历数组

循环数组的传统方法是这样的:

for (var i = 0, length = myArray.length; i < length; i++) {
    console.log(myArray[i]);
}

或者,如果你喜欢向后循环,你可以这样做:

for (var i = myArray.length - 1; i > -1; i--) {
    console.log(myArray[i]);
}

然而,有很多可能的变化,如eg。这个:

for (var key = 0, value = myArray[key], var length = myArray.length; key < length; value = myArray[++key]) {
    console.log(value);
}

... 或者这个…

var i = 0, length = myArray.length;
for (; i < length;) {
    console.log(myArray[i]);
    i++;
}

... 或者这个:

var key = 0, value;
for (; value = myArray[key++];){ 
    console.log(value);
}

哪种效果最好,很大程度上取决于个人品味和您正在实现的特定用例。

注意:

所有浏览器都支持这些变体,包括véry旧浏览器!


选项2:while循环

for循环的一个替代方法是while循环。要遍历一个数组,你可以这样做:

var key = 0;
while(value = myArray[key++]){
    console.log(value);
}

注意:

与传统的for循环一样,即使是最古老的浏览器也支持-循环。

而且,每个while循环都可以重写为for循环。例如,上面的while循环与For循环的行为完全相同:

for(var key = 0;value = myArray[key++];){
    console.log(value);
}

选项3:用于……在

在JavaScript中,你也可以这样做:

for (i in myArray) {
    console.log(myArray[i]);
}

但是,应该谨慎使用,因为它在所有情况下的行为都与传统的for循环不同,并且需要考虑潜在的副作用。参见为什么要用“for…”在“数组迭代是个坏主意?”欲知详情。

作为……的替代方案In,还有for for…of。下面的例子显示了一个for…循环和for…循环中:

var myArray = [3, 5, 7];
myArray.foo = "hello";

for (var i in myArray) {
  console.log(i); // logs 0, 1, 2, "foo"
}

for (var i of myArray) {
  console.log(i); // logs 3, 5, 7
}

注意:

你还需要考虑到没有任何版本的ie浏览器支持……的(Edge 12+),对于…要求IE10以上。


选项4:Array.prototype.forEach()

for循环的替代方法是Array.prototype.forEach(),它使用以下语法:

myArray.forEach(function(value, key, myArray) {
    console.log(value);
});

注意:

Array.prototype.forEach()被所有现代浏览器以及IE9+所支持。


选项5:jQuery.each()

除了上面提到的四个选项之外,jQuery还有自己的foreach变体。

它使用以下语法:

$.each(myArray, function(key, value) {
    console.log(value);
});
  for(var key in substr)
{
     // do something with substr[key];

} 

使用jQuery的each()函数。

这里有一个例子:

$.each(currnt_image_list.split(','), function(index, value) { 
  alert(index + ': ' + value); 
});