• 37、将相同字段属性值放在同一个数组中,并去重对象数组


                const data = [{
                        featureName: "age",
                        bucket: "0-10",
                        iv: 100
                    },
                    {
                        featureName: "gender",
                        bucket: "男",
                        iv: 200
                    },
                    {
                        featureName: "city",
                        bucket: "安徽",
                        iv: 300
                    }, {
                        featureName: "age",
                        bucket: "20-30",
                        iv: 110
                    }, {
                        featureName: "city",
                        bucket: "北京",
                        iv: 310
                    }
                ];
                // 将相同字段featureName的值放到同一数组中
                function mergeObject(data) {
                    var arrayFilted = [];
                    data.forEach(function(value, key) {
                        if(arrayFilted.length == 0) {
                            arrayFilted.push({
                                featureName: value.featureName,
                                bucket: [value.bucket],
                                iv: [value.iv]
                            });
                        } else {
                            arrayFilted.forEach(function(item, index) {
                                if(item.featureName && item.featureName !== value.featureName) {
                                    arrayFilted.push({
                                        featureName: value.featureName,
                                        bucket: [value.bucket],
                                        iv: [value.iv]
                                    });
                                } else if(item.featureName && item.featureName === value.featureName) {
                                    item.bucket.push(value.bucket)
                                    item.iv.push(value.iv)
                                }
                            });
                        }
                    });
                    return arrayFilted;
                }
    
                //去重
                function Es5duplicate(arr, type) {
                    var newArr = [];
                    var tArr = [];
                    if(arr.length == 0) {
                        return arr;
                    } else {
                        if(type) {
                            for(var i = 0; i < arr.length; i++) {
                                if(!tArr[arr[i][type]]) {
                                    newArr.push(arr[i]);
                                    tArr[arr[i][type]] = true;
                                }
                            }
                            return newArr;
                        } else {
                            for(var i = 0; i < arr.length; i++) {
                                if(!tArr[arr[i]]) {
                                    newArr.push(arr[i]);
                                    tArr[arr[i]] = true;
                                }
                            }
                            return newArr;
                        }
                    }
                }
    
                const getData = mergeObject(data);
                console.log(Es5duplicate(getData, 'featureName'));

    最终结果:

  • 相关阅读:
    hdu 4948 Kingdom(推论)
    codeforces 407 div1 A题(Functions again)
    Atcoder regular Contest 073(C
    Atcoder regular Contest 073(D
    Nginx阅读笔记(二)之location的用法
    Nginx阅读笔记
    django virtualenv
    Supervisor
    捕捉攻击者
    django user模块改写
  • 原文地址:https://www.cnblogs.com/xlfdqf/p/11454614.html
Copyright © 2020-2023  润新知