用filter过滤数组对象,并统计过滤的项目

Posted qinghao-qin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用filter过滤数组对象,并统计过滤的项目相关的知识,希望对你有一定的参考价值。

var data=[
        {id:1001,icon:"img/1.png",name:"餐饮0",num:1,price:10,a:1},
        {id:1002,icon:"img/2.png",name:"餐饮1",num:1,price:20,a:2},
        {id:1002,icon:"img/2.png",name:"餐饮1",num:1,price:20,a:3},
        {id:1003,icon:"img/3.png",name:"餐饮2",num:1,price:30,a:4},
        {id:1003,icon:"img/3.png",name:"餐饮2",num:1,price:30,a:5},
        {id:1004,icon:"img/4.png",name:"餐饮3",num:1,price:40,a:6},
        {id:1005,icon:"img/5.png",name:"餐饮4",num:1,price:50,a:7},
        {id:1005,icon:"img/5.png",name:"餐饮4",num:1,price:50,a:8},
        {id:1006,icon:"img/6.png",name:"餐饮5",num:1,price:60,a:9},
        {id:1006,icon:"img/6.png",name:"餐饮5",num:1,price:60,a:10},
        {id:1006,icon:"img/6.png",name:"餐饮5",num:1,price:60,a:11},
        {id:1007,icon:"img/7.png",name:"餐饮6",num:1,price:70,a:12},
        {id:1008,icon:"img/8.png",name:"餐饮7",num:1,price:80,a:13},
        {id:1008,icon:"img/8.png",name:"餐饮7",num:1,price:80,a:14},
        {id:1008,icon:"img/8.png",name:"餐饮7",num:1,price:80,a:15},
        {id:1009,icon:"img/9.png",name:"餐饮8",num:1,price:90,a:16},
        {id:1010,icon:"img/10.png",name:"餐饮9",num:1,price:100,a:17}
    ];
    function filterArrObj(Arr){
        var num=1;
        var newArr=Arr.filter(function (t,index) {//index表示当前项的索引
            var bool=false;
            for(var i=index+1;i<Arr.length;i++){
                if(Arr[i].id===t.id){
                    bool=true;
                    num++;
                    break;
                }
            }
            t.num=num;
            if(!bool){
                num=1;
                return t;
            }
        });
        return newArr
    }

 

以上是关于用filter过滤数组对象,并统计过滤的项目的主要内容,如果未能解决你的问题,请参考以下文章

es6 filter() 数组过滤方法总结

ios开发中NSArray怎么用NSPredicate来过滤数组内容

通过数组filter方法过滤数组中对象

使用filter过滤数组和其中的对象

数组-forEach 遍历 / filter 过滤 / map 替换

数组的filter返回新数组所以不影响原数组吗?