根据日期重新排列数据js

简介: 根据日期重新排列数据js

需求:


将数据按照日期将原数组合并

源数据:


    var arr = [
      { createTime: "2022-07-14 ", taskName: "完善个人信息", experiencePoints: '2' },
      { createTime: "2022-07-14 ", taskName: "首次下单", experiencePoints: '2' },
      { createTime: "2022-07-13 ", taskName: "每日签到", experiencePoints: '2' },
      { createTime: "2022-07-14 ", taskName: "每日签到", experiencePoints: '2' },
    ]

要转换成的数据:


var arr2 = [
      {
        createTime: "2022-07-14 ",
        list: [
          { taskName: "完善个人信息", experiencePoints: '2' },
          { taskName: "首次下单", experiencePoints: '2' },
          { taskName: "每日签到", experiencePoints: '2' },
        ],
      },
      {
        createTime: "2022-07-13 ",
        list: [
          { taskName: "每日签到", experiencePoints: '2' },
        ],
      }
    ]

实现思路:


1.一眼看去,是要按照日期进行数据划分的,那么第一件事就是数组去重,保留不重样的时期

2.接下来就是组装数据了,如果日期相等的话就添加进list

实现代码完整:


 var arr = [ //初始代码
      { createTime: "2022-07-14 ", taskName: "完善个人信息", experiencePoints: '2' },
      { createTime: "2022-07-14 ", taskName: "首次下单", experiencePoints: '2' },
      { createTime: "2022-07-13 ", taskName: "每日签到", experiencePoints: '2' },
      { createTime: "2022-07-14 ", taskName: "每日签到", experiencePoints: '2' },
    ]
    var arr2 = [ //目标代码
      {
        createTime: "2022-07-14 ",
        list: [
          { taskName: "完善个人信息", experiencePoints: '2' },
          { taskName: "首次下单", experiencePoints: '2' },
          { taskName: "每日签到", experiencePoints: '2' },
        ],
      },
      {
        createTime: "2022-07-13 ",
        list: [
          { taskName: "每日签到", experiencePoints: '2' },
        ],
      }
    ]
//逻辑部分
    let demo3 = [...new Set(arr.map(item => item.createTime))] //['2022-07-14 ', '2022-07-13 ']
    let end = []
    demo3.forEach((i, o) => {
      end.push({ createTime: i, list: [] })
    })
    end.forEach((it, id) => {
      arr.forEach((item, index) => {
        if (it.createTime == item.createTime) {
          it.list.push({ taskName: item.taskName, experiencePoints: item.experiencePoints })
        }
      })
    })
    console.log(end, '------------------------------')
相关文章
|
1月前
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
1月前
|
JavaScript 前端开发 搜索推荐
Moment.js、Day.js、Miment,日期时间库怎么选?
【10月更文挑战第29天】如果你需要一个功能强大、插件丰富的日期时间库,并且对性能要求不是特别苛刻,Moment.js是一个不错的选择;如果你追求极致的轻量级和高性能,那么Day.js可能更适合你;而如果你有一些特定的日期时间处理需求,并且希望在性能和功能之间取得平衡,Miment也是可以考虑的。
|
1月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
2月前
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
35 7
|
2月前
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
57 4
|
2月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
40 0
|
2月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
JavaScript 数据可视化 前端开发
《JavaScript数据可视化编程》——导读
在我们的日常生活中,数据的重要性与日俱增。尤其对于一些庞大的组织机构(诸如Facebook和Google这种体量的公司)来说,数据几乎是一切决策的核心。在地缘政治领域,正在前所未有地收集数据,以致爆出诸如美国国家安全局监控丑闻这样的事件,这从另一个侧面反映了我们正在经历一个宏观数据时代。
2836 0
|
JavaScript 前端开发 数据可视化