我试图通过一个数组循环。我有以下代码:
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 ()
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);
});