

var arr=[1, 2,3,4,5];var obj={a:1,b:2,c:3,d:4,e:5};console.log(Object.keys(obj));console.log(Object.values(obj));console.log(Object.entries(obj));for(var key of Object.keys(obj)){console.log(key);}for(var value in Object.values(obj)){console.log(value);}for(var [key,value] of Object.entries(obj)){console.log(value,value);}



var arr=[1, 2,3,4,5];var obj ={a:1,b:2,c:3,d:4,e:5};console.log(arr.keys());console.log(arr.values());console.log(arr.entries());for(var key of arr.keys()){console.log(key);}for(var value in arr.values()){console.log(value);}for(var [key,value] of arr.entries()){console.log(key,value);}
迭代方法
foreach

两个方法结果完全一样

forEach没有返回值 
内置接口是底层用c++写的,不是js写的


箭头函数,第二个this参数无影响

不会走这个方法,当数组是空的时候

稀松数组里面的值不会走

删除之后变成稀松数组,for遍历可以打印出undefined,但forEach不可以

结果出现问题问题,forEach不能break

1,2,3,4,5


var arr=[1, 2,3,4,5];var arr1=arr.map(function(item,index,arr){return item*2;})console.log(arr)console.log(arr1)


this就是arr,就是arr[1] arr[2]



便利的取到每一项的值
题目

找出每个数组中最大的那个

返回映射关系的数组
var arr = [1, 2, 3, 4, 5];var arr1 = arr.map(function (item, index, arr) {//return item>3 //[false,false,false,true,true]if(item>3){return item;}})console.log(arr)console.log(arr1)


