js数组里的对象相同key合并,其余多个相同key值相加

1145 ℃
let list=[
  {
    "year": 2021,
    "price0": 12,
    "price1": 0,
    "price2": 22
  },
  {
    "year": 2022,
    "price0": 1,
    "price1": 32,
    "price2": 121
  },
  {
    "year": 2021,
    "price0": 0,
    "price1": 0,
    "price2": 0
  },
  {
    "year": 2022,
    "price0": 24195.36,
    "price1": 76262.56,
    "price2": 0
  }
]

合并方法

function someDataMerge(arr, sameKey, mergeKey){
  var result = [];
  var temp = {};
  for (var i in arr) {
  	var key = arr[i][sameKey];
  	if (temp[key]) {
  	  temp[key][sameKey] = temp[key][sameKey];
  	  for(var j=0;j<mergeKey.length; j++){
  	  	temp[key][mergeKey[j]] = temp[key][mergeKey[j]] + arr[i][mergeKey[j]];
  	  }
  	} else {
  	  temp[key] = {};
  	  temp[key][sameKey] = arr[i][sameKey];
  	  for(var j=0;j<mergeKey.length; j++){
  	  	temp[key][mergeKey[j]] = arr[i][mergeKey[j]];
  	  }
  	}
  	//不用合并的值
  }
  for (var k in temp) {
  	result.push(temp[k])
  }
  return result;
}

调用

//哪些值需要合并
var mergeKey = ["price0", "price1", "price2"]

//调用
var results = someDataMerge(list, "year", mergeKey);

//说明
//list数组
//year根key合并
//mergeKey需要合并相加的key

//输出结果
console.log(results)

//0: {year: 2021, price0: 12, price1: 0, price2: 22}
//1: {year: 2022, price0: 24196.36, price1: 76294.56, price2: 121}

js数组内根据相同key合并,里面的数组也合并(兼容ie9/ie10浏览器)

es6语法中如何实现合并数组

php如何合并数组并去除重复值(重新排序)

php如何将两个数组去重后合并

es6利用Map实现数组合并(克隆)

标签: js, key, 合并, 对象合并, 数组, 数组合并

上面是“js数组里的对象相同key合并,其余多个相同key值相加”的全面内容,想了解更多关于 js 内容,请继续关注web建站教程。

当前网址:https://m.ipkd.cn/webs_2319.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

织梦cms留言板统计留言数量的方法
推荐一个免费的API接口网站
织梦dedecms两种内容模型的文档进行合并的方法
美国主机和香港主机做seo哪个优势更好?
JavaScript中unshift的基本用法