如何将含日期键的对象数组转换为指定结构的嵌套数组
日期键对象数组转指定嵌套数组结构的实现方法
你可以通过数组的map方法结合Object.entries来完成这个转换,具体代码如下:
const arrayWithDates = [ {'2023-06-02': 2, '2023-06-21': 6}, {'2023-06-29': 2, '2023-06-23': 1} ]; const arrayTransformed = arrayWithDates.map(obj => Object.entries(obj).map(([date, count]) => ({ count: String(count), date })) ); console.log(arrayTransformed);
代码说明:
- 外层
map遍历原数组里的每一个对象元素; Object.entries(obj)会把对象转换成键值对数组,比如第一个对象会被转为[['2023-06-02', 2], ['2023-06-21', 6]];- 内层
map遍历这些键值对,通过解构赋值直接取出date(原对象的键)和count(原对象的值),再组装成目标结构的对象; - 用
String(count)将数字类型的count转为字符串,和你需要的目标结构完全匹配;
如果需要按日期对每个子数组里的元素排序,可以在转换后添加sort逻辑:
const arrayTransformed = arrayWithDates.map(obj => Object.entries(obj) .map(([date, count]) => ({ count: String(count), date })) .sort((a, b) => new Date(a.date) - new Date(b.date)) );
内容的提问来源于stack exchange,提问作者David_roman
相关产品推荐
相关产品推荐

