1.for
eg:利用for
循环计算1 * 2 * 3 * ... * 10
的结果:
var sum = 1;
for(var i = 2;i < 11;i++){
sum *= i;
}
console.log(sum);
2.for...in...
var o = { name: 'Jack', age: 20, city: 'Beijing' }; for (var key in o) { console.log(key); // 'name', 'age', 'city'
console.log(o[key]); // 'Jack', '20', 'Beijing'
}
要过滤掉对象继承的属性,用hasOwnProperty()
来实现.
var a = ['A', 'B', 'C']; for (var i in a) { console.log(i); // '0', '1', '2' console.log(a[i]); // 'A', 'B', 'C' }
注意:for ... in
对Array
的循环得到的是String
而不是Number
3.for...of...,是ES6引入的新的语法
eg:
var a = ['A', 'B', 'C']; var s = new Set(['A', 'B', 'C']); var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]); for (var x of a) { // 遍历Array console.log(x); } for (var x of s) { // 遍历Set console.log(x); } for (var x of m) { // 遍历Map console.log(x[0] + '=' + x[1]); }
//A B C
//A B C//1=x 2=Y 3=Z
4.forEach()
方法是ES5.1标准引入的
var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
console.log(element + ', index = ' + index);
});
var s = new Set(['A', 'B', 'C']); s.forEach(function (element, sameElement, set) { console.log(element); });
var m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
console.log(value);
});