精华内容
下载资源
问答
  • 对一个存储着许多对象的数组进行遍历,将其中包含相同字段如Bondkey的对象进行合并,如amount的值相加,返回新的数组,该数组中不包含BondKey重复的对象。  解决方案 对源数组进行遍历,另新建一个数组存放...

    需求 

    对一个存储着许多对象的数组进行遍历,将其中包含相同字段如Bondkey的对象进行合并,如amount的值相加,返回新的数组,该数组中不包含BondKey重复的对象。

     解决方案

    对源数组进行遍历,另新建一个数组存放Bondkey唯一的对象,再对该数组进行遍历(其实只是一个双重for循环)

    var a = [
    {
    BondKey: "010221.IB",
    BondName: "01国开21",
    amount:2000
    },
    {
    BondKey: "010221.IB",
    BondName: "01国开21",
    amount:2000
    },
    {
    BondKey: "011800642.IB",
    BondName: "18珠海港SCP002",
    amount:2000
    }
    ]
    console.log(a);
    
    function mergeObject( array ) {
        var arrayFilted = [];
        array.forEach(function (value,key) {
          //判断过滤后的数组是否为空
          if ( arrayFilted.length == 0 ) {
            arrayFilted.push(value);
          }else{
            arrayFilted.forEach( function (valueIndex,keyIndex) {
              if (valueIndex.BondKey && valueIndex.BondKey !== value.BondKey) {
                arrayFilted.push(value);
              }else if (valueIndex.BondKey && valueIndex.BondKey === value.BondKey) {
                valueIndex.amount = valueIndex.amount + value.amount;
              }
            });
          }
        });
        return arrayFilted;
    }
    console.log(mergeObject(a));
    

     

    展开全文
  • 数组里某个属性相同的对象合并成一个数组数组如下需求是,转成如下数组以下是解决方案 原数组如下 let resData = [ { "name": "住院医疗最高报销", "tagName": "医疗", "insuredAmount": "6000" }, { ...

    将数组里某个属性相同的对象合并成一个数组

    原数组如下

    let resData = [
          {
            "name": "住院医疗最高报销",
            "tagName": "医疗",
            "insuredAmount": "6000"
          },
          {
            "name": "身故赔付",
            "tagName": "寿险",
            "insuredAmount": "36.00"
          },
          {
            "name": "烦死了免费陈述事实",
            "tagName": "寿险",
            "insuredAmount": "8888.00"
          },
          {
            "name": "你好,噜噜噜",
            "tagName": "寿险",
            "insuredAmount": "66.00"
          },
          {
            "name": "120种重大疾病确诊赔付",
            "tagName": "重疾",
            "insuredAmount": "350000"
          }
        ]
    

    需求是,转成如下数组
    也就是将具有相同“tagName”的对象合并成新数组

    let Data = [
          {
            "tagName": "医疗",
            dataInfo: [
              {
                "name": "住院医疗最高报销",
                "tagName": "医疗",
                "insuredAmount": "6000"
              }
            ]
          },
          {
            "tagName": "寿险",
            dataInfo: [
              {
                "name": "身故赔付",
                "tagName": "寿险",
                "insuredAmount": "36.00"
              },
              {
                "name": "烦死了免费陈述事实",
                "tagName": "寿险",
                "insuredAmount": "8888.00"
              },
              {
                "name": "你好,噜噜噜",
                "tagName": "寿险",
                "insuredAmount": "66.00"
              },
            ]
          },
          {
            "tagName": "重疾",
            dataInfo: [
              {
                "name": "120种重大疾病确诊赔付",
                "tagName": "重疾",
                "insuredAmount": "350000"
              }
            ]
          }
        ]
    

    以下是解决方案
    方案一:

    let tempArr = [];
    let Data = [];
    for (let i = 0; i < resData.length; i++) {
       if (tempArr.indexOf(resData[i].tagName) === -1) {
         Data.push({
           tagName: resData[i].tagName,
           dataInfo: [resData[i]]
         });
         tempArr.push(resData[i].tagName);
       } else {
         for (let j = 0; j < Data.length; j++) {
           if (Data[j].tagName == resData[i].tagName) {
             Data[j].dataInfo.push(resData[i]);
             break;
           }
         }
       }
     }
     console.log(Data);
    

    方案二:

    let dataInfo = {};
    resData.forEach((item, index) => {
    	let { tagName } = item;
    	if (!dataInfo[tagName]) {
    		dataInfo[tagName] = {
    			tagName,			
    			child: []
    		}
    	}
    	dataInfo[tagName].child.push(item);
    });
    let list = Object.values(dataInfo); // list 转换成功的数据
    console.log(list)
    

    以上方法综合借鉴了其他博主的文章,总结以供大家一起学习!

    展开全文
  • 数组里某个属性相同的对象合并成一个数组 getSata(chooseSensorLow) { console.log('chooseSensorLow', JSON.parse(JSON.stringify(chooseSensorLow))); const dataInfo = {}; chooseSensorLow.forEach(...

    将数组里某个属性相同的对象合并成一个数组

     getSata(chooseSensorLow) {
          console.log('chooseSensorLow', JSON.parse(JSON.stringify(chooseSensorLow)));
          const dataInfo = {};
          chooseSensorLow.forEach((item) => {
            const { sateName } = item;
            if (!dataInfo[sateName]) {
              dataInfo[sateName] = {
                satelliteId: sateName,
                sensorIds: [],
              };
            }
            dataInfo[sateName].sensorIds.push(item.sensorName);
          });
          console.log(' Object.values(dataInfo)', JSON.parse(JSON.stringify(Object.values(dataInfo))));
          return Object.values(dataInfo);
        },

    参考文章:https://blog.csdn.net/m0_45833941/article/details/103820257

    原数组:

    let resData = [
          {
            "name": "住院医疗最高报销",
            "tagName": "医疗",
            "insuredAmount": "6000"
          },
          {
            "name": "身故赔付",
            "tagName": "寿险",
            "insuredAmount": "36.00"
          },
          {
            "name": "烦死了免费陈述事实",
            "tagName": "寿险",
            "insuredAmount": "8888.00"
          },
          {
            "name": "你好,噜噜噜",
            "tagName": "寿险",
            "insuredAmount": "66.00"
          },
          {
            "name": "120种重大疾病确诊赔付",
            "tagName": "重疾",
            "insuredAmount": "350000"
          }
        ]
    

    要求的转化后的数组, 也就是将具有相同“tagName”的对象合并成新数组:

    let Data = [
          {
            "tagName": "医疗",
            dataInfo: [
              {
                "name": "住院医疗最高报销",
                "tagName": "医疗",
                "insuredAmount": "6000"
              }
            ]
          },
          {
            "tagName": "寿险",
            dataInfo: [
              {
                "name": "身故赔付",
                "tagName": "寿险",
                "insuredAmount": "36.00"
              },
              {
                "name": "烦死了免费陈述事实",
                "tagName": "寿险",
                "insuredAmount": "8888.00"
              },
              {
                "name": "你好,噜噜噜",
                "tagName": "寿险",
                "insuredAmount": "66.00"
              },
            ]
          },
          {
            "tagName": "重疾",
            dataInfo: [
              {
                "name": "120种重大疾病确诊赔付",
                "tagName": "重疾",
                "insuredAmount": "350000"
              }
            ]
          }
        ]
    

    解决方案
    方案一:

    let tempArr = [];
    let Data = [];
    for (let i = 0; i < resData.length; i++) {
       if (tempArr.indexOf(resData[i].tagName) === -1) {
         Data.push({
           tagName: resData[i].tagName,
           dataInfo: [resData[i]]
         });
         tempArr.push(resData[i].tagName);
       } else {
         for (let j = 0; j < Data.length; j++) {
           if (Data[j].tagName == resData[i].tagName) {
             Data[j].dataInfo.push(resData[i]);
             break;
           }
         }
       }
     }
     console.log(Data);
    

    方案二:

    let dataInfo = {};
    resData.forEach((item, index) => {
    	let { tagName } = item;
    	if (!dataInfo[tagName]) {
    		dataInfo[tagName] = {
    			tagName,			
    			child: []
    		}
    	}
    	dataInfo[tagName].child.push(item);
    });
    let list = Object.values(dataInfo); // list 转换成功的数据
    console.log(list)
    

     

    展开全文
  • 数组里某个属性相同的对象合并成一个数组数组如下 let resData = [ { "name": "住院医疗最高报销", "tagName": "医疗", "insuredAmount": "6000" }, { "name": "身故赔付", "tagName": "寿险"...

    将数组里某个属性相同的对象合并成一个数组

    原数组如下

    let resData = [
          {
            "name": "住院医疗最高报销",
            "tagName": "医疗",
            "insuredAmount": "6000"
          },
          {
            "name": "身故赔付",
            "tagName": "寿险",
            "insuredAmount": "36.00"
          },
          {
            "name": "烦死了免费陈述事实",
            "tagName": "寿险",
            "insuredAmount": "8888.00"
          },
          {
            "name": "你好,噜噜噜",
            "tagName": "寿险",
            "insuredAmount": "66.00"
          },
          {
            "name": "120种重大疾病确诊赔付",
            "tagName": "重疾",
            "insuredAmount": "350000"
          }
        ]
    
    

    需求是,转成如下数组
    也就是将具有相同“tagName”的对象合并成新数组

    let Data = [
          {
            "tagName": "医疗",
            dataInfo: [
              {
                "name": "住院医疗最高报销",
                "tagName": "医疗",
                "insuredAmount": "6000"
              }
            ]
          },
          {
            "tagName": "寿险",
            dataInfo: [
              {
                "name": "身故赔付",
                "tagName": "寿险",
                "insuredAmount": "36.00"
              },
              {
                "name": "烦死了免费陈述事实",
                "tagName": "寿险",
                "insuredAmount": "8888.00"
              },
              {
                "name": "你好,噜噜噜",
                "tagName": "寿险",
                "insuredAmount": "66.00"
              },
            ]
          },
          {
            "tagName": "重疾",
            dataInfo: [
              {
                "name": "120种重大疾病确诊赔付",
                "tagName": "重疾",
                "insuredAmount": "350000"
              }
            ]
          }
        ]
    
    

    以下是解决方案
    方案一:

    let tempArr = [];
    let Data = [];
    for (let i = 0; i < resData.length; i++) {
       if (tempArr.indexOf(resData[i].tagName) === -1) {
         Data.push({
           tagName: resData[i].tagName,
           dataInfo: [resData[i]]
         });
         tempArr.push(resData[i].tagName);
       } else {
         for (let j = 0; j < Data.length; j++) {
           if (Data[j].tagName == resData[i].tagName) {
             Data[j].dataInfo.push(resData[i]);
             break;
           }
         }
       }
     }
     console.log(Data);
    
    
    let dataInfo = {};
    resData.forEach((item, index) => {
    	let { tagName } = item;
    	if (!dataInfo[tagName]) {
    		dataInfo[tagName] = {
    			tagName,			
    			child: []
    		}
    	}
    	dataInfo[tagName].child.push(item);
    });
    let list = Object.values(dataInfo); // list 转换成功的数据
    console.log(list)
    
    

    以上方法综合借鉴了其他博主的文章,总结以供大家一起学习!

    展开全文
  • 对一个存储着许多对象的数组进行遍历,将其中包含相同字段如Bondkey的对象进行合并,如amount的值相加,返回新的数组,该数组中不包含BondKey重复的对象。 解决方案 对源数组进行遍历,另新建一个数组存放Bondkey...
  • 面试题往往会遇到这样笔试题,将以下数组对象合并相同值 var arr = [{ "name": "语文", "fraction": 80 }, { "name": "数学", "fraction": 70 ...
  • 对象数组 var list = [ { melonbody: 8.4, strName: '损伤程度', level: '一等品' }, { colorvalue: 8.42, strName: '颜色', level: '一等品' }, { diameter: 8.4, strName: '直径', level: '一等品' }, {...
  • 我们有时候需要对数组中的对象进行合并,根据对象的某一个属性相同的进行合并 let boxSortArr = [ { id: 51001, num: 1 }, { id: 51002, num: 1 }, { id: 51003, num: 1 }, { id: 51004, num: 1 }, { id: 51001...
  • 可以通过上次需求,我们通过 TYPE 和 REMARK 两个 key 对应 value 共同决定是否合并属性,我们是可以将两个属性进行串联成一个新 key,如果这个 key 相同,即两个条件同时满足。这里不仅仅合并相邻数据,不...
  • arr = [ {a:1 , b:1 , c:1}, {a:2 , b:1 , c:2}, {a:3 , b:3 , c:3}, {a:1 , b:1 , c:4}, {a:5 ,...数组arr属性b为基准把 {a:1 , b:1 , c:1}{a:2 , b:1 , c:2}{a:1 , b:1 , c:4} 合并为{a:1,2 , b:1 , c:1,2,4}
  • 可以通过上次需求,我们通过TYPE 和 REMARK 两个 key 对应 value 共同决定是否合并属性,我们是可以将两个属性进行串联成一个新 key,如果这个 key 相同,即两个条件同时满足。这里不仅仅合并相邻数据,不...
  • var Array = [ { "22": "333" }, { "555": "444" }, { "22": "666" } ] //实现的数组:[{ "22": "333,666"},{"555": "444"}] var newArr = [] Array.map(value => { ...
  • echarts在vue使用,并从后台获取数据(后台数组对象的相同属性合并为数组) 后台数据 [ { 'time': '01:00', 'power': '0' }, { 'time': '02:00', 'power': '0' }, { 'time': '03:00', 'power': '0...
  • var arr=[ { id:"00000001", value:"3(Mi)" }, { id:"00000001", value:"6(La)" }, { id:"00000002", ...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 149
精华内容 59
热门标签
关键字:

数组中属性相同的对象合并