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;
    },
  },
相关推荐
零陵上将军_xdr几秒前
后端转全栈学习-Day6-JavaScript 基础-4
前端·javascript·学习
川冰ICE3 分钟前
JavaScript实战②|电商网站交互效果,轮播图与购物车
开发语言·javascript·交互
凌云拓界9 分钟前
状态机与思考循环 ——CogitoAgent开发实战(一)
javascript·人工智能·架构·node.js·设计规范
sugar__salt15 分钟前
Bun 新一代 JavaScript/TypeScript 运行时:从入门到实战
开发语言·javascript·typescript
梦幻通灵1 小时前
Vue3 Element日期控件置灰明天之后日期
前端·javascript·vue.js
lzhdim1 小时前
C盘空间多出来4GB:谷歌服软 Chrome本地AI大模型可禁用、删除了
前端·人工智能·chrome
Monkery1 小时前
WWDC26 全面汇总
前端·人工智能
ANnianStriver1 小时前
PetLumina 03 — 后端目录重构与 Web 管理后台搭建
java·前端·ai·重构·ai编程·claude code
晓13131 小时前
【Cocos Creator 3.x】篇——第一章 简介
前端·javascript·游戏引擎
light blue bird1 小时前
MES/ERP 协同场景导入导出图表展示组件
前端·信息可视化·桌面端winform·多节点端·gdi图表绘制开发