js 处理json数组,通过name键值重新组装json并且合并相同name键值为数组

5 篇文章 0 订阅

公司同事遇到个很奇葩的需求,需要把下图name键值相同重新组装json并且合并name键值相同的为数组,他实在搞不出来叫我帮忙,这种需求也确实奇葩,但我还是搞出来了,当然我觉得有更好的方法:

在这里插入图片描述

需要的效果如下:(肯定有更好的方法解决还请各位大佬分享一下

在这里插入图片描述

贴代码吧,也不知道咋说!

let data_all = {};
for(key in data){
	let name = null;
	for(res in data[key]){
		if(res == 'name'){
			// 临时存储键名
			name = data[key][res];

			// 判断重新组装json里是否有该name值,如果有并且不是数组就把该键名键值改为数组并
			if((data_all[name] != undefined) && !Array.isArray(data_all[name])){
				data_all[name] = [data_all[name]];
			}
		}
		if(res == 'value'){
			// 通过临时键名判断重新组装json里该键名是否数组
			if(Array.isArray(data_all[name])){
				data_all[name].push((data[key][res]));
			}else{
				data_all[name] = data[key][res];
			}
		}
	}
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值