首页 > 解决方案 > 从一年到一年的 Javascript 季度数组

问题描述

如果所有季度都存在,我如何将一年中的一系列季度转换为仅一年,否则季度数据保持不变。例如从这样的年季度数组

['1Q2017', '2Q2017', '3Q2017', '4Q2017', '1Q2018', '2Q2018', '3Q2018']

应该有这样的输出

['2017', '1Q2018', '2Q2018', '3Q2018']

标签: javascript

解决方案


您可以使用reduce(),contact()Object.entries()来获得所需的结果。

演示

const arr = ['1Q2017', '2Q2017', '3Q2017', '4Q2017', '1Q2018', '2Q2018', '3Q2018'];


let result = Object.entries(arr.reduce((r,v)=>{
	let key = v.split('Q')[1];
	r[key] =(r[key]||[]).concat(v);
	return r;
},{})).reduce((r,v)=>r.concat(v[1].length==4?v[0]:v[1]),[]);


console.log(result)
.as-console-wrapper {max-height: 100% !important;top: 0;}


推荐阅读