黑马程序员技术交流社区

标题: for in,Object.keys,for of 的区别 [打印本页]

作者: 绮罗    时间: 2020-4-2 15:40
标题: for in,Object.keys,for of 的区别
本帖最后由 绮罗 于 2020-4-2 15:52 编辑

for in 1  Array.prototype.sayLength = function(){ 2    console.log(this.length);
3    }
4  let arr = ['a','b','c','d'];
5  arr.name = '数组';
6  Object.defineProperties(arr,{
7        type:{
8                 value:true,
9                 writable:true,
10                 enumerable:true
11            }
12     });
13  for(let i in arr){
14      console.log(i);//0,1,2,3,name,type,sayLength
15   }


Object.keys() Array.prototype.sayLength = function(){
            console.log(this.length);
       }
       let arr = ['a','b','c','d'];
       arr.name = '数组';
       Object.defineProperties(arr,{
           type:{
                value:true,
               writable:true,
               enumerable:true
            }
        });
var keys = Object.keys(arr); console.log(keys);//["0", "1", "2", "3", "name", "type"]


for of
示例一:
1 Array.prototype.sayLength = function(){
2  console.log(this.length);
3}
4  let arr = ['a','b','c','d'];
5  arr.name = '数组';
6  Object.defineProperties(arr,{
7  type:{
8        value:true,
9        writable:true,
10        enumerable:true
11       }
12 });
13  for(let i of arr){
14      console.log(i);//a,b,c,d
15  }
示例二:
var person={
    name:'coco',
    age:22,   
locate:{
        country:'China',
        city:'beijing',
    }
}
for(var key of Object.keys(person)){
   //使用Object.keys()方法获取对象key的数组
    console.log(key+": "+person[key]);
//name: coco,age: 22,locate: [object Object]
}

示例三:
1 let arr3 = ['a', 'b', 'c'];
2         for (let [index, val] of arr3.entries()) {
3             console.log(index + ':' + val);//0:a 1:b 2:c
4  }






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2