vue.js处理数组对象中某个字段是否变为两个字段

一、场景:

产品要求做一个时间步骤条,使用目前后端已返回的数据进行操作实现。时间步骤条要求日期和时间分开显示且相同日期只显示第一个日期。

图左边为实现效果,右边为后台返回的接口。接口中current 字段表示当前到达第几步,从0开始,对应显示数组的前几个展示。后台返回的是一个整的日期时间字段dateTime。

二、处理思路:

  • 拿出nodes 数组对象中与current 字段对应的步骤数据放入新数组slicedNodes;
  • 再循环处理slicedNodes 数组对象里的dateTime 字段,将其拆分成date, time 两个字段**;**
  • 比较date 字段是否有重复的,没有则赋值该字段到一个新数组prevDate;
  • 将新数组添加到result数组即可组装完成。

三、代码实现:

javascript 复制代码
computed: {
    // 过程数组
    processedNodes() {
      // 将数组截取的副本返回到新的数组对象:array.slice[start, end)
      const slicedNodes = this.twrProcess?.nodes.slice( 0, parseInt(this.twrProcess?.current,10) + 1);
      const result = [];
      let prevDate = null;
      slicedNodes?.forEach((node) => {
        // 将dateTime日期时间字段拆分成date, time两个字段
        const [date, time] = node.dateTime.split(" ");
        const newObj = { ...node };
        // 将不一致的date放入newObj.date
        if (date !== prevDate) {
          newObj.date = date;
          prevDate = date;
        }
        newObj.time = time;
        result.push(newObj);
      });
      return result;
    },
  },
相关推荐
FungLeo8 小时前
成为全栈·React 管理后台篇·总复盘:从“接口能调通”到“后台值得使用”
前端·react.js·前端框架·项目复盘·成为全栈
Csvn9 小时前
并发模式:让渲染学会排队、插队和让路
前端
可乐鸡翅yeah_9 小时前
新手梳理:M3U8 线上问题,哪些是前端锅,哪些是后端锅
前端·ios·音视频·实时音视频·m3u8·音视频在线播放
Flynt9 小时前
Linear 用 1000 个 PR 换掉 styled-components,我写了 200 个按钮,把这笔账复现了一遍
前端·css·preact
JavaGuide10 小时前
NVIDIA 又开源了!这次给 AI Agent 加上权限管控
前端·后端
excel10 小时前
prisma 如何处理数据库竞态
前端·数据库·后端
莪_幻尘12 小时前
Skill 体检:30 个 Skill 全凭感觉?体检器先自曝了 8 个“假 0 分
前端·人工智能·llm
风骏时光牛马12 小时前
AI模型综合能力评测:性能、指令遵循与多场景实测对比
前端
Frag0ut12 小时前
Chrome与Chromium内核浏览器在Windows 11上的新特性全景解析
前端·chrome·windows·web安全·chromium·gemini ai·playready drm
hiahiahia12312 小时前
实现完整 Tool Dispatcher
开发语言·前端