我试图通过一个数组循环。我有以下代码:
var currnt_image_list= '21,32,234,223';
var substr = currnt_image_list.split(','); // array here
我试图把所有的数据从数组。有谁能指引我正确的道路吗?
我试图通过一个数组循环。我有以下代码:
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)) //返回字符串