JS将数据按照某个指定的参数进行分类转换

JS将数据按照某个指定的参数进行分类转换

前段时间遇见这样的问题,需要将一组交易信息按照交易时间来分块展示
但是后端并不能传来我想要的数据格式

后端传来的数据格式如下

[{"cardNo":"6238211234567900","dayOfWeek":"周一","dealType":"自助消费","settleDt":"20190930","transAmount":220,"transDate":"1569855419063"},
 {"cardNo":"6238211234566589","dayOfWeek":"周四","dealType":"自助消费","settleDt":"20190926","transAmount":100,"transDate":"1569855419063"},
 {"cardNo":"6238211234561585","dayOfWeek":"周五","dealType":"自助消费","settleDt":"20190927","transAmount":280,"transDate":"1569855419063"},
 {"cardNo":"6238211234567900","dayOfWeek":"周一","dealType":"自助消费","settleDt":"20190930","transAmount":580,"transDate":"1569855419063"},
 {"cardNo":"6238211234562556","dayOfWeek":"周日","dealType":"自助消费","settleDt":"20190929","transAmount":260,"transDate":"1569855419063"},
 {"cardNo":"6238211234566589","dayOfWeek":"周日","dealType":"自助消费","settleDt":"20190929","transAmount":20,"transDate":"1569855419063"}]
需要数据转换后的格式为
[{"dayOfWeek":"周~","settleDt":"20190929",otherData:[{},{}]},
 {"dayOfWeek":"周~","settleDt":"20190928",otherData:[{},{}]}...]

方法如下所示

	function classify(data){
		let list = [];
		data.map(ele=>{
			var settleDt = ele.settleDt.slice(4).substring(2,4);
			if(list.length<=0){
				list.push({
					settleDt:settleDt,
					dayOfWeek:ele.dayOfWeek,
					otherData:[ele]
				})
				return;
			}
			let child = list.find(item=>{
				return item.settleDt == settleDt
			})
			if(child){
				child.otherData.push(ele)
			}else{
				list.push({
					settleDt:settleDt,
					dayOfWeek:ele.dayOfWeek,
					otherData:[ele]
				})
			}
		})
		console.log(list);
		return list;
	}
	classify(arr);

通过如上这段代码就可以将数据转化为咱们想要的格式啦!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值