一、遍历对象
1. 使用Object.keys()
var obj = {'0':'aaaa','1':'bbbb','2':'cccc'};
Object.keys(obj).forEach(function(key){
console.log(key,obj[key]);
});
2. 使用for ... in
var obj = {'0':'aaaa','1':'bbbb','2':'cccc'};
for (var k in obj) {
console.log(k,obj[k]);
}
二、遍历数组
1. 使用forEach
var arr = [1,2,3];
arr.forEach(function(val, idx) {
console.log(val, idx);
});
需要注意的是回调函数的第二个参数才是索引,而非第一个。
2. 使用for ... in
var arr=[1,2,3,4];
for (var k in arr){
console.log(k,":",arr[k]);
}
3. 使用for ... of
var arr=[1, 2, 3, 4, 5];
for (var value of arr){
console.log(value);
}
如果只想使用value,for ... of是个不错的选择
四、数组的map
可用使用map将数组的每个元素映射成另一个值,并返回一个新的数组,如:
[1,2,3,4].map(i => i * i)
需要注意的是,Lambda表达式如果想返回一个对象,要么用大括号声明一个语句块,在里面return一个对象,要么直接用大括号构造一个对象,但是必须用括号括起来。
正确1:
[1,2,3,4].map(i => ({x : i, y: i * i}))
正确2:
[1,2,3,4].map(i => {return {x : i, y: i * i};})
错误:
[1,2,3,4].map(i => {x : i, y: i * i})