将对象分类

需求:将同样类型的年龄相加

var arr = [{"type":"1","age":"20"},{"type":"2","age":"10"},{"type":"3","age":"50"},{"type":"2","age":"20"},{"type":"1","age":"15"},{"type":"20","age":"10"},{"type":"13","age":"70"},{"type":"3","age":"8"}];

实现方法

1、先找到所有的类型,然后根据类型去相加

var type = [];
for (var i = 0;i < arr.length; i++) {
    var typevalue = arr[i].type;
    var flag = 0;
    for(var j = 0;j < type.length; j++){
        if(typevalue==type[j]){
            flag = 1;
        }
    }
    if(flag==0){
        type.push(typevalue);
    }   
}

var result = [];
for(var i = 0;i < type.length; i++){
    var record = 0;
    var typevalue = type[i];
    for(var j = 0;j < arr.length; j++){
        if(arr[j].type==typevalue){
            record+=parseInt(arr[j].age);
        }
    }
    var obj={};
    obj[typevalue] = record;
    result.push(obj);
}
console.log(result);

2、看此类型的在数组里有没有,如果有,则age相加,如果没有,则放进去(推荐)

var type = [];
var res = [];
for (var i = 0;i < arr.length; i++) {
    var typevalue = arr[i].type;
    var flag = 0;   
    for(var j = 0;j < type.length; j++){
        if(typevalue==type[j]){
            flag = 1;
            res[j][typevalue] += parseInt(arr[i].age);
        }
    }
    if(flag==0){
        type.push(typevalue);
        var obj = {};
        obj[typevalue] = parseInt(arr[i].age);
        res.push(obj);
    }   
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容