仵航说 Vue用replace修改数组中对象的键值或者字段名 仵老大

1.介绍

先看图

​ 今天在项目中遇到了一个问题,例如我现在需要传一些数据到后端,数组例如是

let arr = [
{"colId":"SPECIAL_DESCRIBE","colName","SPECIAL_DESCRIBE名称"},
{"colId":"CUS_NAME","colName","CUS_NAME名称"}
]

但是后端需要接收的数组是

let array = [
{"id":"SPECIAL_DESCRIBE","label","SPECIAL_DESCRIBE名称"},
{"id":"CUS_NAME","label","CUS_NAME名称"}
]

​ 因为这些数据是从后台查询出来的,所以我想通过在后端修改sql语句,用SQL的AS起别名,但是我去后端查看发现后端用的mybatis-plus的官方方法,直接查询的数据库全部,然后返回给了前端,所以思来想去跑去问了经理,他告诉我用replace,但是我没有用过,他说js都可以用,别说vue了,我就紧赶慢赶的去搜索,最后总结了一些,

2.解决方案

假如只是单独的解决上面的问题你可以直接这样做

//前端现在的数组
let arr = [
{"colId":"SPECIAL_DESCRIBE","colName","SPECIAL_DESCRIBE名称"},
{"colId":"CUS_NAME","colName","CUS_NAME名称"}
]
//假如后端需要的数组名字叫 array 直接定义
let array = JSON.parse(JSON.stringify(arr).replace(/colId/g,"id").replace(/colName/g,"label"))
console.log(array)
//现在你去打印就会看出来名字已经变了

3.其他例子

期间我发现了很多好玩的,你写完会发现 replace中的 / /g代表的什么,还有没有其他的符号,我就去做了攻略

3.1例子1: / /(作用截取)

//首先定义一个变量
let name = "仵航全世界最牛"
//之后我们进行截取
let newName = name.replace(/仵航/,"仵老大")
//这个时候我们进行打印
console.log(newName)
//输出的内容就是
仵老大全世界最牛

3.2例子2:/ /g(全局替换)

//这个也就是上面用到的全局替换
let wuhang = "今天仵航说,天气真的很好,"
wuhang = wuhang + "适合跟仵航一起去爬山,"
wuhang = wuhang + "也适合跟仵航一起去游泳"
//然后进行全局替换
let wulaoda = wuhang.replace(/仵航/g,"仵老大")
//进行打印
console.log(wulaoda)
//输出结果就是
今天仵老大说,天气真的很好,适合跟仵老大一起去爬山,也适合跟仵老大一起去游泳

3.3例子3://i(保证替换的大写不会发生改变)

//首先定义一个变量
let wuhang = "wuhang说,你真是个java开发工程师哎"
//然后进行替换,并保证你替换的字母大小写不发生改变
let wulaoda = wuhang.replace(/wuhang/i,"WuHang").replace(/java/i,"Java")
//进行打印
console.log(wulaoda)
//输出结果就是
WuHang说,你真是个Java开发工程师哎

当然还有另外几种,但是用的不多,基本上这几种就可以解决大部分问题,

4.应用场景

接下来截图我项目中用到的代码,对以后的自己说加油

//点击预览弹出弹框
showTable(){ console.log(sessionStorage)
console.log("点击预览的时候",this.formatData.child1)
// let sessionStorageID=sessionStorage.getItem("customQuery9fa91cea-a0b8-4cf7-ad3a-9bf679f07a0d")
//把child1的数组遍历出来存到sessionStorage里 let child1 = JSON.parse(JSON.stringify(this.formatData.child1).replace(/,"id"/g,"paramtID").replace(/colId/g,"id").replace(/colName/g,"label").replace(/colEnName/g,"fieldEnName").replace(/colChEnName/g,"fieleChEnName").replace(/conditionName/g,"condition"))
console.log("child1",child1)
let child2 = JSON.parse(JSON.stringify(this.formatData.child2).replace(/,"id"/g,"paramtID").replace(/colId/g,"id").replace(/colName/g,"label").replace(/colEnName/g,"fieldEnName").replace(/colChEnName/g,"fieleChEnName").replace(/conditionName/g,"condition"))
console.log("child2",child2)
let child3 = JSON.parse(JSON.stringify(this.formatData.child3).replace(/,"id"/g,"paramtID").replace(/colId/g,"id").replace(/colName/g,"label").replace(/colEnName/g,"fieldEnName").replace(/colChEnName/g,"fieleChEnName").replace(/conditionName/g,"condition"))
console.log("child3",child3)
let child4 = JSON.parse(JSON.stringify(this.formatData.child4).replace(/,"id"/g,"paramtID").replace(/colId/g,"id").replace(/colName/g,"label").replace(/colEnName/g,"fieldEnName").replace(/colChEnName/g,"fieleChEnName").replace(/conditionName/g,"condition"))
console.log("child4",child4) for(let i=0;i<child1.length;i++){
console.log("点击预览之后",child1[i])
sessionStorage.setItem(child1[i].id+1,JSON.stringify(child1[i]))
}
for(let i=0;i<child2.length;i++){
console.log("点击预览之后",child2[i])
sessionStorage.setItem(child2[i].id+2,JSON.stringify(child2[i]))
}
for(let i=0;i<child3.length;i++){
console.log("点击预览之后",child3[i])
sessionStorage.setItem(child3[i].id+3,JSON.stringify(child3[i]))
}
for(let i=0;i<child4.length;i++){
console.log("点击预览之后",child4[i])
sessionStorage.setItem(child4[i].id+4,JSON.stringify(child4[i]))
} this.$http.post('/reporttools/sys-dataset/queryTable',sessionStorage).then(resp =>{
this.showTableData = resp.data
})
this.drawer = true; },

本期关于replace的分享就到这里,码字不易,希望您点个赞再走

仵航说 Vue用replace修改数组中对象的键值或者字段名 仵老大的更多相关文章

  1. 修改数组中对象的key值

    遇见场景:echart图表中后台返回我的数据,后台无法修改key值,但是echart渲染图表的时候,需要用 var m2R2Data= [ {value:335,name:"种类01 335 ...

  2. php usort 按照数组中的某个键值排序

    //php usort 按照数组中的某个键值排序 如果第一个参数小于第二个参数 -> 返回小于0的整数如果第一个参数等于于第二个参数 -> 返回等于0的整数如果第一个参数大于于第二个参数 ...

  3. mongoose修改数组中某个特定的值

    写博客的时候有一个这样的业务,一个标签集合和一个文章集合,它们是多对多的关系,文章集合中tags字段包含它对应的标签,现在修改标签集合中某条标签记录的名字,文章集合中所有包含这个标签的tags字段的值 ...

  4. vue prop不同数据类型(数组,对象..)设置默认值

    vue prop 会接收不同的数据类型,这里列出了 常用的数据类型的设置默认值的写法,其中包含: Number, String, Boolean, Array,  Function, Object   ...

  5. js实现的对象数组根据对象的键值进行排序代码

    有时候会遇到做展示数组的排序,由大到小和由小到大的切换: var arr=[{id:1,webName:"蚂蚁部落"},{id:2,webName:"网易"}] ...

  6. PHP 二维数组按某一个键值排序

    一.前言 在某个项目中,需要读取某个文件夹下的所有文件,在本地的 Windows 环境下时,读取出来的二维数组的文件名称和在 Windows 文件夹的文件排序一致, 但是项目上线后,环境为 Linux ...

  7. Vue 改变数组中对象的属性不重新渲染View的解决方案

    Vue 改变数组中对象的属性不重新渲染View的解决方案 在解决问题之前,我们先来了解下 vue响应性原理: Vue最显著的一个功能是响应系统-- 模型只是一个普通对象,修改对象则会更新视图.受到ja ...

  8. 微信小程序中如何使用setData修改数组或对象中的某一参数

    本人也是刚开始接触微信小程序,在微信小程序中经常会遇到修改数组中某一项的值,比如array[0]或者是对象中object.item的值.这些值在微信小程序中都需要使用一个名为setData的方法,而这 ...

  9. PHP 修改数组中的值

    PHP 修改数组中的值 ①.二维数组可以通过 for($i = 0; $i < count(Array()); ++ $i) 这种形式修改 实例代码: // 修改 二维数组中的 name为 Ge ...

随机推荐

  1. ccpc2020长春站F题 Strange Memory

    dsu on tree 题目链接 点我跳转 题目大意 给定一棵包含 \(n\) 个节点的树,每个节点有个权值 \(a_i\) 求\(∑_{i=1}^n∑_{j=i+1}^n[a_i⊕a_j=a_{lc ...

  2. 如何使用ABBYY FineReader处理文档图像的缺陷?

    通过扫描仪或者数码相机获取的图像文件,容易出现文本扭曲.页面歪斜等缺陷,会影响到OCR的识别质量.此时,用户可使用ABBYY FineReader 15(Windows系统)OCR文字识别软件的自动和 ...

  3. 巧妙运用Camtasia制作爱豆的动感影集

    对于追星族来说,收集爱豆的图片.视频是日常必做的事情,而对于进阶型的追星族来说,为爱豆自制各种精美的视频.影集等,会让自己追星之路显得更为充实. 我们可以借助Camtasia教程录制软件为爱豆制作各种 ...

  4. thinkPHP 无法加载控制器:Hello

    出现这种问题的情况下要看看: (1).控制器的名称是否写对,控制器的命名规范(别忘下class) 控制器的命名规则1.必须采用大驼峰的命名规则2.必须以Controller.class.php来结尾I ...

  5. JavaSE 学习笔记07丨IO流

    Chapter 13. IO流 13.1 File类 java.io.File类是文件(file)和目录(文件夹)(directory)路径名(path)的抽象表示,主要用于文件和目录的创建.查找和删 ...

  6. Java反射说得透彻一些

    目录 一.反射机制是什么? 二.反射的具体使用 2.1 获取对象的包名以及类名 2.2 获取Class对象 2.3 getInstance()获取指定类型的实例化对象 2.4 通过构造函数对象实例化对 ...

  7. 【线程池】toString

    java.util.concurrent.RejectedExecutionException: Task com.personal.practice.jvm.Jstacktest$1@7d605a5 ...

  8. 6.2 Binding基础

    WPF最为核心的思想是数据驱动UI,实现这一技术的基石就是绑定技术(binding).如果把Binding比作数据的桥梁,那么它的两端分别是源(Source)和目标(Target),Binging是架 ...

  9. CentOS下配置VNC

    配置桌面 # 安装gnome桌面环境 yum groupinstall Desktop -y # 安装中文语言支持包(可选) yum groupinstall 'Chinese Support' -y ...

  10. 【Usaco 2009 Silver】JZOJ2020年9月19日提高B组T1 音乐节拍

    [Usaco 2009 Silver]JZOJ2020年9月19日提高B组T1 音乐节拍 题目 Description FJ准备教他的奶牛弹奏一首歌曲,歌曲由N(1<=N<=50,000) ...