仵航说 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. 在Guitar Pro中如何模拟电子管音响

    在这篇文章中,我们将使用Guitar Pro 7中的功能和工具,完成构建一个真实的电子管吉他音箱调音过程. 虽然Guitar Pro是用于创建吉他乐谱的工具,但在新版本中(主要是6和7)它也有一些模拟 ...

  2. Camtasia中对录制视频进行编辑——行为

    小视频的逐渐兴起,让我们的生活变得多姿多彩,同时,也造就了一批新媒体的创业者还有越来越多的网红,这不禁使我们也想加入他们的行列.但是问题来了,拍摄视频后最重要的是对视频进行剪辑,没有一款经济适用的软件 ...

  3. FL Studio音乐编曲入门教程

    有很多小伙伴给我们留言说使用FL Studio20一段时间后,虽然对这款音乐编曲软件的功能有了一个了解,但对它整个的编曲过程还不是太熟悉.所以今天我就给大家带来了FL Studio20这款音乐编曲软件 ...

  4. ubuntu安装imagick扩展

    注意:安装该扩展不要求安装ImageMagick从http://pecl.php.net/package/imagick找到imagick的最新的版本 Linux代码 wget http://pecl ...

  5. Java基础知识面试题(最详细版)

    刚刚经历过秋招,看了大量的面经,顺便将常见的Java常考知识点总结了一下,并根据被问到的频率大致做了一个标注.一颗星表示知识点需要了解,被问到的频率不高,面试时起码能说个差不多.两颗星表示被问到的频率 ...

  6. 【海思】Hi3531A SPI功能的详细配置以及使用

    目录 一.前言 二.SPI管脚信息获取 2.1 SPI_SCLK.SPI_SDI.SPI_SDO管脚复用寄存器 2.2 片选SPI_CSN0-SPI_CSN3管脚寄存器 三.配置和使能与SPI相关的管 ...

  7. 浅谈 van Emde Boas 树——从 u 到 log log u 的蜕变

    本文参考算法导论完成. 模板题在此 QwQ 优化的过程比较长,还请读者耐心阅读,认真理解. 最初的想法 我会暴力! 用一个 \(size\) 数组维护每个元素出现的次数. 不细讲,时间复杂度 \(O( ...

  8. sentinel快速入门

    转载:https://blog.csdn.net/noaman_wgs/article/details/103328793 https://github.com/alibaba/Sentinel/wi ...

  9. mq网络请求命令设计&消息的批量发送

    RemotingCommand: flag倒数第一位表示请求类型,0请求1返回.倒数第二位1.表示oneway 单条消息发送时,消息体的内容将保存在body种,批量消息发送,需要将多条消息体的内容存储 ...

  10. Docker 跨平台在 netCore 中的从入门到部署

    前言 从题目我们可以看的出,今天是五部曲的第三部,你可能会好奇,为啥没有见到前两部呢?这里我简单说下: 1.跨平台第一部曲:MySql 如果你看我的所有开源项目,应该能发现我已经全部迁移到了Mysql ...