微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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;
},[])

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐