javascript - 从一年到一年的 Javascript 季度数组
问题描述
如果所有季度都存在,我如何将一年中的一系列季度转换为仅一年,否则季度数据保持不变。例如从这样的年季度数组
['1Q2017', '2Q2017', '3Q2017', '4Q2017', '1Q2018', '2Q2018', '3Q2018']
应该有这样的输出
['2017', '1Q2018', '2Q2018', '3Q2018']
解决方案
您可以使用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;}
推荐阅读
- c# - C# MVC - 将方法传递给我的 HomeController 索引并在我的前端使用它
- c# - Bluetooth Scan throwing ArgumentOutOfRangeException in Xamarin.iOS
- mysql - MySQL 存储过程从命令行工作,但 phpMyAdmin 没有显示任何结果。为什么?
- shiny - 如何使用 includeMarkdown 在 Shiny 应用程序中创建关于/帮助页面?
- c++ - 类型擦除成员函数指针的“正确”方法是什么?
- scala - 如何根据scala中的内部地图值访问地图地图
- r - 根据另一个变量的顺序在 R 中创建新变量
- javascript - 反应大日历事件未加载
- c++ - JPG - 如何从 ICC 配置文件部分 APP2 读取/提取数据
- sql - 无法对这些数据使用选择联接,当它以前工作时