• ES6 对象数组常用方法总结


    一、查找对象数组某个属性的最大值和最小值

    查找List数组中对象的age属性的最大值

    let List=[
            {
                "id": 1,
                "name": "张三",
                "value": 20
            },
            {
                "id": 2,
                "name": "李四",
                "value": 23
            },
            {
                "id": 3,
                "name": "赵五",
                "value": 21
            }]
    

    查找最大值、最小值代码

    let maxValue = List.length > 0 ? Math.max.apply(Math, List.map(function(item) { return item.value })) : 0
    
    let minValue = List.length > 0 ? Math.min.apply(Math, List.map(function(item) { return item.value })) : 0
    
    
    console.log('maxValue :', maxValue ) //23
    console.log('minValue :', minValue ) //20
    

     上面代码中做了对象数组的长度判断,当对象数组的长度为0时,默认最大值和最小值等于0,因为对象数组为0时,Math.max.apply(Math, List.map(function(item) { return item.value })) 会返回 -Infinity

    二、在对象数组中查找对象

    查找对象数组中符合条件的对象

    let List=[
            {
                "id": 1,
                "name": "张三",
                "value": 20
            },
            {
                "id": 2,
                "name": "李四",
                "value": 23
            },
            {
                "id": 3,
                "name": "李四",
                "value": 26
            },
            {
                "id": 4,
                "name": "赵五",
                "value": 21
            }]
    

    使用 find 和 filter

    let findData = List.find(item => item.name == '李四')
    
    let filterData = List.filter(item => item.name == '李四')
    
    // findData : {id:2, name:'李四', value: 23}
    // filterData : [{id: 2, name: '李四', value: 23},{id: 3, name: '李四', value: 26}]
    

     注意: find只会返回第一个满足条件的, 而且返回的是对象。filter会返回满足所有符合条件的, 返回的还是数组。

    三、数组去重

    普通数组使用 new Set 去重

    let List = [1,2,3,1,2,3];
    let newList = new Set(List);
    console.log(newList);
    

     对象数组使用 reduce 去重

     let List= [
                {
                    key: 1,
                    value: 'value1'
                },
                {
                    key: 2,
                    value: 'value2'
                },
                {
                    key: 3,
                    value: 'value3'
                },
                {
                    key: 1,
                    value: 'value1'
                }];
    let objList= {};
    let newList= List.reduce((item, next)=>{
        objList[next.id] ? '' : objList[next.id] = true && item.push(next);
        return item;
    },[])
    
  • 相关阅读:
    面向对象(OOP:Objdec Oriented Programming)
    vue中v-model和v-bind区别
    DateTimeFormat
    html中frameset简介
    学习及资料地址
    mybatis+oracle批量新增带序列List对象
    Io流读取并输出文件(例如.mp3格式文件)
    Java从服务器下载图片保存到本地
    转:Java DecimalFormat的主要功能及使用方法
    数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
  • 原文地址:https://www.cnblogs.com/Intellectualscholar/p/16300569.html
Copyright © 2020-2023  润新知