前端拿到后台接口返回的数据,并根据实际情况按需处理数据

2023-11-13

方法一:通过数据数组的map方法

//创建一个假数据,用于模拟后台返回的多级数据 
let options=[
        {id:1,name:'水果',children:[
            {id:11,name:'榴莲',prices:55},
            {id:12,name:'苹果',prices:45},
            {id:13,name:'香蕉',prices:35},
        ]},
        {id:2,name:'生活用品',children:[
            {id:21,name:'牙刷',prices:6},
            {id:22,name:'枕头',prices:5},
            {id:23,name:'中中',prices:5}
        ]}
    ]
//创建一个公共的方法,用于数据处理
function handelData(arr){
    //处理第一层数据(key与lable代表处理后的字段名称)
     return arr.map(item=>({
         key:item.id,
         label:item.name,
    //处理第二层数据
         children:item.children.map(ite=>(JSON.parse({
              key:ite.id,
              lable:ite.name,
          })))
     }))
 }

//调用方法处理数据
let newData = handelData(options)

注意:如果还有更多级数据,可以依次接着往下处理

方法二:通过递归的方法(这是引用借鉴网上大神的)

 let options=[
        {id:1,name:'水果',children:[
            {id:11,name:'榴莲',prices:55},
            {id:12,name:'苹果',prices:45},
            {id:13,name:'香蕉',prices:35},
        ]},
        {id:2,name:'生活用品',children:[
            {id:21,name:'牙刷',prices:6},
            {id:22,name:'枕头',prices:5},
            {id:23,name:'中中',prices:5}
        ]}
    ]  
let newarr = [] //这个数组用于接收处理过后的数据
//封装函数方便调用
  function handleData(data, newarr) {
    const len = data.length
    for (let i = 0; i < len; i++) {
        //如果子级存在,并且有数据
      if (data[i].children && data[i].children.length > 0) {
          //label为级联选择器要展示的值,我这里使用的是name,value为选中的值,我这里使用的是id,根据个人使用场景,按需调试
        newarr.push({ id: data[i].id, label: data[i].name, children: [] })
        this.handleData(data[i].children, newarr[i].children)
      } else {
          //子级不存在时,不用push  children:[],否则级联选择器最后一页会出现空白,很难看
        newarr.push({ id: data[i].id, label: data[i].name })
      }
    }
    return newarr
  }
//调用处理函数,得到自己处理后的数据
let dealArr = handleData(options,newarr)

注意:方法类似于方法一,看自己兴趣爱好选择

(一般可用于处理表单的级联数据)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端拿到后台接口返回的数据,并根据实际情况按需处理数据 的相关文章

  • 如何将udp发送到udp node.js服务器?

    我对此很陌生 所以我真的不知道我在做什么 但我已经设置了一个 node js udp 服务器 我想从客户端 来自网站 向它发送一个数据包 但我不知道如何在 javascript 中做到这一点 或者是否可能 我不是在研究如何从 Node js
  • 访问sendBeacon发送的数据

    文档表明sendBeacon通过发送其数据HTTP POST request 但在 PHP 中 POST变量似乎是一个空数组 这是我的 JavaScript 代码 navigator sendBeacon beacon log php My
  • 动态速度计 javascript 或 jquery 插件

    我希望有动态ajax插件在页面上显示速度计 一个想法是我设置一个背景并旋转针 有人知道相关插件吗 这里有一些供您参考 http bernii github com gauge js http bernii github com gauge
  • 网站 YouTube 嵌入视频不断播放

    我正在使用 youtube 提供的 iframe 在我的网站上嵌入视频 我还使用了一个 css 弹出窗口 这是我从这个页面学到的http www pat burt com web development how to do a css po
  • 使用 moment.js 检查输入日期是否为星期一

    好吧 我想检查日期是否是星期一 例如 var myDate new Date moment myDate DD MM YYYY dayIs monday 在我的国家 一周的第一天是星期一 所以 我真的想检查输入日期是否是一周的开始 我尝试使
  • Ember.js 处理 View 事件后转换到路由

    Setup 我有一个 Ember 应用程序 支持使用 Imgur API 上传图像 我已经有一个工作路线和模板来处理任何 Imgur ID 但我想在上传新图像后转换到此路线 使用返回的 Imgur ID 这是该应用程序的相关部分 http
  • Leaflet js虚构地图

    我是 Leaflet 的新手 我想了解如何创建完全交互式的虚构地图 我有一张图像想要转换为传单地图 该图像基本上像图表一样具有许多连接和点 我想首先将该图像转换为地图 能够将鼠标悬停在这些点上 突出显示它们并显示有关它们的信息 并且还可以在
  • 即使我可以监视其他方法,也无法监视事件处理程序

    我想使用 Jest Jasmine Enzyme 测试 React 中的事件处理程序 MyComponent js import React from react class MyComponent extends React Compon
  • jquery window.open 在 ajax 成功中被阻止

    尝试在我的 ajax 成功调用中打开一个新的浏览器窗口 但是 它被阻止为弹出窗口 我做了一些搜索 发现用户事件需要绑定到 window open 才能避免这种情况发生 我还找到了这个解决方案 您可以在 ajax 之前打开一个空白窗口 然后在
  • Node.js - console.log 不显示数组中的项目,而是显示 [Object]

    我在注销对象内数组的内容时遇到问题 实际的物体看起来像这样 var stuff accepted item1 item2 rejected response Foo envelope from The sender to new item1
  • 通过 node-http-proxy 保留基于 cookie 的会话

    我有一个简单的基于 Express 的 Node js Web 服务器 用于开发 JavaScript 应用程序 我将服务器设置为使用 node http proxy 来代理应用程序向在不同域和端口上运行的 Jetty 服务器发出的 API
  • JavaScript 中数组的 HTML 数据列表值

    我有一个简单的程序 它必须从服务器上的文本文件中获取值 然后将数据列表填充为输入文本字段中的选择 为此 我想要采取的第一步是我想知道如何动态地将 JavaScript 数组用作数据列表选项 我的代码是
  • 如何流式传输 OpenAI 的完成 API?

    我想流式传输结果通过 OpenAI 的 API 完成 https beta openai com docs api reference completions 该文档提到使用服务器发送的事件 https developer mozilla
  • 如何使JavaScript函数在Eclipse“大纲视图”中可见?

    我有这样的代码 但如果它在匿名函数中定义 则无法打开函数大纲 类没有问题 我该如何概述something2 请分享一些提示 我可以将所有函数标记为构造函数 但这是无效的方法 start of track event required deb
  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • JavaScript onresize 事件多次触发

    我在尝试仅在触发 onresize 事件时运行一次函数时遇到一些麻烦 我已经看过这个问题DOM onresize 事件 https stackoverflow com questions 1500312 javascript onresiz
  • 如何在 javascript 正则表达式中匹配平衡分隔符?

    我原以为这个问题是不可能的 据我所知 Javascript 的正则表达式既没有递归插值 也没有漂亮的 NET 平衡组功能 但问题就在那里 如问题 12 所示正则表达式 alf nu http regex alf nu 匹配平衡对 lt an
  • 单击引导分页链接时调用 jquery 函数

    我想在单击引导分页链接时调用 jquery 函数 假设我想从第1页遍历到第2页 应该调用一个jquery函数 我正在使用以下代码 但它不起作用 ul pagination on click li function alert page ch
  • 如何在打字稿文件中导入没有定义文件的js库

    随着我们的项目变得越来越大 我想从 JavaScript 切换到 TypeScript 以帮助进行代码管理 然而 我们使用许多库作为 amd 模块 我们不想将其转换为 TypeScript 我们仍然想将它们导入 TypeScript 文件
  • 如何在 gulp.src 中使用基本正则表达式?

    我正在尝试选择两个文件gulp src highcharts js and highcharts src js 当然 我知道我可以使用数组表达式显式添加这两个表达式 但出于学习目的 我尝试为它们编写一个表达式 我读过可以使用简单的正则表达式

随机推荐

  • 方法、类和对象

    方法 类和对象 方法 类似于其它语言的函数 类 类是一个模板 它描述一类对象的行为和状态 对象 对象是类的一个实例 有状态和行为 方法 方法的基础用法 方法声明格式 修饰符1 修饰符2 返回值类型 方法名 形式参数列表 Java语句 方法的
  • pyqt 槽任意参数_pyqt中信号与槽的参数传递。

    摘自 http www cnblogs com caomingongli archive 2011 09 19 2180904 html pyqt中信号与槽的参数传递 当信号与槽函数的参数数量相同时 它们参数类型要完全一致 信号与槽不能有缺
  • MatLab 求平均值,方差,标准差

    文章目录 概述 1 计算一个数组的平均值 2 计算一个数组的方差 3 计算一个数组的标准差 概述 MatLab在科学计算中 具有很强大的功能 常用的计算方法是计算一组数据的平均数 标准差 方差 1 计算一个数组的平均值 使用 mean 函数
  • [leetcode] 2024. 考试的最大困扰度

    题目链接 题意 给出只含有两种字符的字符串以及一个次数限制k 问最多修改k个位置 T gt F F gt T 最大的连续的字符串的长度是多少 思路 双指针 滑动窗口 假如说我们要找修改后连续的T最长的长度 我们可以 枚举右端点 并统计当前不
  • 【深度学习】关于EMA:指数移动平均

    什么是EMA 指数移动平均 exponential moving average 也叫做权重移动平均 weighted moving average 可以用来估计变量的局部均值 使得变量的更新与一段时间内的历史取值有关 在采用 SGD 或者
  • Oracle11g补丁安装(单实例)

    Oracle11g补丁安装 单实例 一 安装环境及补丁版本 Oracle版本 11 2 0 4 Linux版本 Red Hat Enterprise Linux Server release 6 4 Santiago PSU版本号 p317
  • Git 安装和环境部署

    1 下载Git 进入Git的GitHub项目release下载 进入国内镜像源下载 镜像地址 2 安装Git 跟随安装引导进行安装 选择各项 如没有特殊需求 大多数选项一直next即可 3 设置name和email
  • Docker login 命令-Docker login 作用-Docker login 默认用户名和密码-Docker登录-嗨客网

    docker login命令教程 docker login 命令用于登陆到一个 Docker 镜像仓库 如果未指定镜像仓库地址 默认为官方仓库 Docker Hub 如果用户使用 docker login 命令登录官方仓库 首先我们需要在官
  • 服务器管理系统是什么

    服务器管理系统是什么 服务器管理系统 是在操作系统下对操作系统的服务器软件及其相关软件进行二次设置的管理软件 是运营商管理域名 服务器 企业邮局 数据库等服务器主机类产品的一个网站平台 以达到快捷实现域名 服务器主机 企业邮局 数据库等产品
  • protobuf在C#项目中的使用

    protobuf在C 项目中的使用 在C 项目中 有时候会使用到使用到protobuf来作为通信时数据交换的格式 protobuf ProtocolBuffer 简称PB 是google 的一种数据交换的格式 这是一种二进制的格式 比使用x
  • SqlServer视图介绍以及创建方式

    1 视图的介绍 ps 学sqlServer视图是在面试问到之后学的 答不上来太low了 然后就去各种搜索操作对视图也有了自己的理解 其实视图就是一张表 是一张表中或者多张表中经过某种筛选后显示的数据 视图是 由一个预定义的查询select语
  • JAVA 经常遇到一些问题【第二部分36~51】

    重拾者 每日记录至目前 记录51种不同场景的问题可参考解决方案 异常就两部分 1 excepiton信息 报错产生的原因 2 at开头表示 异常产生的代码位置 欢迎关注微信公众号 AIMING2020 拆分两篇博客 第一部分1 35 地址如
  • 【开源】DA14580-GPIO实验教程——疯壳·ARM双处理器开发板系列

    目录 第一节 LED硬件电路 第二节 GPIO寄存器 2 1 GPIO引脚介绍 2 2寄存器介绍 2 2 1 P0数据寄存器 2 2 2 P0设置数据寄存器 2 2 3 P0复位数据寄存器 2 2 4 P00模式寄存器 2 2 5 P1 P
  • “拖延症”的良方——对于追求完美,自制力差,情绪化的人很受用。

    上大学以后 我开始有了拖延的毛病 立下目标无数 但时常却动力奇缺 常常在网上浏览着各色的小说和帖子 或是玩很无聊的弱智在线小游戏 却不愿碰专业书本或文献一下 甚至哪怕deadline就在几天之后 只有在deadline之前一点点时间才会因紧
  • 关系型数据库与非关系型数据库的区别

    当前主流的关系型数据库有Oracle DB2 Microsoft SQL Server Microsoft Access MySQL等 非关系型数据库有 NoSql Cloudant nosql和关系型数据库比较 优点 1 成本 nosql
  • Improved Denoising Diffusion Probabilistic Models 论文阅读

    前言 DDPM模型虽然在生成任务上达到了不错的效果 但是也同样存在一些问题 例如采样时间过长 对数似然不高等 对数似然是生成模型中广泛使用的指标 优化对数似然迫使生成模型学习各个数据分布 使得模型的多样性大大提高 此外 对数似然性的微小改进
  • element Drawer 抽屉无法渲染

    出现的问题 不使用脚手架和node js时drawer不渲染 原因 没有引入最新的样式 解决方案 cdn引入
  • 性能测试(Jemeter)

    1 性能指标 响应时间 一次请求的往返时间 tps 每秒系统能够处理的事务数 比如订单中的下单操作 下单后续有很多操作 比如创建订单 扣除库存 清算库存等 这个完整操作就是一个完整的事务 qps 每秒系统能处理的查询数 就是每秒系统能够承受
  • 数据库技术的发展历史是怎么样的?

    数据库技术产生于20世纪60年代末70年代初 其主要主要研究如何存储 使用和管理数据 随着计算机硬件和软件的发展 数据库技术也不断地发展 数据库技术在理论研究和系统开发上都取得了辉煌的成就 从数据管理的角度看 数据库技术到目前共经历了如下三
  • 前端拿到后台接口返回的数据,并根据实际情况按需处理数据

    方法一 通过数据数组的map方法 创建一个假数据 用于模拟后台返回的多级数据 let options id 1 name 水果 children id 11 name 榴莲 prices 55 id 12 name 苹果 prices 45