根据日期重新排列数据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, '------------------------------')
相关文章
|
3月前
|
监控 JavaScript 算法
深度剖析 Vue.js 响应式原理:从数据劫持到视图更新的全流程详解
本文深入解析Vue.js的响应式机制,从数据劫持到视图更新的全过程,详细讲解了其实现原理和运作流程。
|
3月前
|
JavaScript 前端开发 搜索推荐
Moment.js、Day.js、Miment,日期时间库怎么选?
【10月更文挑战第29天】如果你需要一个功能强大、插件丰富的日期时间库,并且对性能要求不是特别苛刻,Moment.js是一个不错的选择;如果你追求极致的轻量级和高性能,那么Day.js可能更适合你;而如果你有一些特定的日期时间处理需求,并且希望在性能和功能之间取得平衡,Miment也是可以考虑的。
|
3月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
153 0
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
4月前
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
53 7
|
4月前
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
76 4
|
4月前
|
机器学习/深度学习 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) 进行切分并输出 方便将数据进行结构化后检索
82 0
|
4月前
|
数据采集 JavaScript 前端开发
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
|
3月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
49 1
JavaScript中的原型 保姆级文章一文搞懂
|
7月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
138 2
|
3月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
33 0

热门文章

最新文章