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

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

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


当前回答

使用jQuery的each()函数。

这里有一个例子:

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

其他回答

试试这个:

$.grep(array, function(element) {

})

选项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);
});

使用jQuery的each()函数。

这里有一个例子:

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

带有箭头函数和插值的ES6语法:

var data=["a","b","c"];
$(data).each((index, element) => {
        console.log(`current index : ${index} element : ${element}`)
    });

通过数组/字符串迭代的替代方法有副作用

Var STR = '21,32,234,223'; Var substr = str.split(','); Substr.reduce ((a,x)=> console.log('reduce',x), 0) //返回undefined 字符串的子串。Every (x=> {console.log(' Every ',x);返回true}) //返回true 字符串的子串。Some (x=> {console.log(' Some ',x);}) //返回false 字符串的子串。地图(x = > console.log(“地图”,x));//返回数组 Str.replace (/(\d+)/g, x=> console.log('replace',x)) //返回字符串