• 对象的几种遍历方法


    1.for  in

    const obj = {
    
      id:1,
    
      name:lili,
    
      age:18
    
    }
    
    for(let key in obj){
    
     console.log(key + '------' + obj[key])
    
    }

    输入结果:

    id --- 1

    name --- lili

    age --- 18

    2.1)、Object.keys(obj)

       2)、Object.values(obj)

    参数:

    obj:要返回其枚举自身属性的对象

    返回值:

    一个表示给定对象的所有可枚举属性的字符串数组。

    const obj = {
        id:1,
        name:'zhangsan',
        age:18
    }
    
     console.log(Object.keys(obj))
    
    console.log(Object.values(obj))

    输出结果: obj对象的key组成的数组

    ['id','name','age']

    输出结果:obj对象的value组成的数组

    ['1','zhangsan','18']

    3.使用Object.getOwnPropertyNames(obj)

    返回一个数组,包含对象自身的所有属性(包含不可枚举属性)
    遍历可以获取key和value
    const obj = {
                id:1,
                name:'zhangsan',
                age:18
        }
        Object.getOwnPropertyNames(obj).forEach(function(key){
            console.log(key+ '---'+obj[key])
        })

    输出结果:

    4.foreach循环

    遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

    //1 没有返回值
    arr.forEach((item,index,array)=>{
        //执行代码
    })
    //参数:value数组中的当前项, index当前项的索引, array原始数组;
    //数组中有几项,那么传递进去的匿名回调函数就需要执行几次;
    Object.keys(obj).forEach(key => {
    
       console.log(key,obj[key]);
    
    });

    5.用.each,.each的方式进行循环,.each()可以遍历数组和对象

    var data = {    
                     "李慧慧":145000,
                     "安杰":135000,
                     "Jom":15000,
                     "张公子":1456,
                     "吴功子":45446,
                     "钱雨奇":78779,
                     "王达":25235,
                     "李萌":4646,
                     "于成龙":64646,
    
                 }
                 $.each(data,function(key,value){
                     console.log("姓名:"+key+";"+"对应值:"+data[key]);
    
                 })

    6.some遍历

    some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

    var arr = [ 1, 2, 3, 4, 5, 6 ]; 
        console.log( arr.some( function( item, index, array ){ 
            return item > 3; 
        })); 
    true

    7.every遍历

    every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。

    var arr = [ 1, 2, 3, 4, 5, 6 ]; 
    console.log( arr.every( function( item, index, array ){ 
            return item > 3; 
        })); 
    false

    8.filter遍历

    不会改变原始数组,返回新数组

    var arr = [
      { id: 1, text: 'aa', done: true },
      { id: 2, text: 'bb', done: false }
    ]
    console.log(arr.filter(item => item.done))

    9.for  of遍历

    可以正确响应break、continue和return语句

    for (var value of myArray) {
    console.log(value);
    }

    10.map循环

    有返回值,可以return出来

    map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

    arr.map(function(value,index,array){
     
      //do something
     
      return XXX
     
    })
    var ary = [12,23,24,42,1]; 
    var res = ary.map(function (item,index,ary ) { 
        return item*10; 
    }) 
    console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改
    console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

     11.find

    返回一个符合条件的数组的第一个元素

    let arr = [1,2,3,4]
    let Arr = [
        {id: 0, name: '小明' },
        {id: 1, name: '小白' },
        {id: 2, name: '小红' },
        {id: 3, name: '小新' }
    ]
     arr.find(value,index,arr) => {})
    
    let a = Arr.findIndex(v => v.id === 2)    
    console.log(a); //{ id: 2, name: '小红', age: 3 }

     12.使用Reflect.ownKeys(obj)遍历

    返回一个数组,包含对象自身的所有属性,不管属性名是Symbol或字符串,也不管是否可枚举. 

    var obj = {'0':'a','1':'b','2':'c'};
    
    Reflect.ownKeys(obj).forEach(function(key){
    console.log(key,obj[key]);
    });

    附加一个地址:https://blog.csdn.net/LaoYangSaid/article/details/107201591

  • 相关阅读:
    maven .assembly
    命令参数解析库JCommonder
    OWL,以及XML,RDF
    Ambari是什么?
    上海新桥>风景服务区>宁波江东区车管所 及返程路线
    武汉旅游地图(zz)
    武汉旅游(zz)
    上海市松江区 <> 上海市金山区枫泾·万枫东路ab6177,racehttp://live.racingchina.com/
    明中路明华路到第九人民医院路线
    月台路春申塘桥到虹桥火车站
  • 原文地址:https://www.cnblogs.com/shine1234/p/14005258.html
Copyright © 2020-2023  润新知