在Java中,可以使用for循环遍历数组中的对象,如下所示:
String[] myStringArray = {"Hello", "World"};
for (String s : myStringArray) {
// Do something
}
我可以在JavaScript中做同样的事情吗?
在Java中,可以使用for循环遍历数组中的对象,如下所示:
String[] myStringArray = {"Hello", "World"};
for (String s : myStringArray) {
// Do something
}
我可以在JavaScript中做同样的事情吗?
当前回答
有一种方法可以只迭代自己的对象财产,而不包括原型的属性:
for (var i in array) if (array.hasOwnProperty(i)) {
// Do something with array[i]
}
但它仍将迭代自定义的财产。
在JavaScript中,任何自定义属性都可以分配给任何对象,包括数组。
如果要在稀疏数组上迭代,应使用for(var i=0;i<array.length;i++)If(i in array)或array.forEach with es5shim。
其他回答
阵列迭代有4种方式:
// 1: for
for (let i = 0; i < arr.length; ++i) {
console.log(arr[i]);
}
// 2: forEach
arr.forEach((v, i) => console.log(v));
// 3: for in
for (let i in arr) {
console.log(arr[i]);
}
// 4: for of
for (const v of arr) {
console.log(v);
}
总结:1和3个解决方案创建额外的变量,2-创建额外的函数上下文。最好的方式是第四位-“for of”。
最好使用顺序for循环:
for (var i = 0; i < myStringArray.length; i++) {
// Do something
}
var obj = ["one","two","three"];
for(x in obj){
console.log(obj[x]);
}
如果您想使用jQuery,它的文档中有一个很好的示例:
$.each([ 52, 97 ], function( index, value ) {
alert( index + ": " + value );
});
简短回答:是的。你可以这样做:
var myArray = ["element1", "element2", "element3", "element4"];
for (i = 0; i < myArray.length; i++) {
console.log(myArray[i]);
}
在浏览器控制台中,您可以看到打印的“element1”、“element2”等内容。