前端 数组转字符串,字符串转数组
前段时间写了一个项目,需要用到级联选择器,就是 element 的级联选择器。在保存数据的时候,前端这边保存的是数据如果不是一级数据,就会拿到他父级的id和他的id,但是后端为了保证数据量不那么大,不想要这个数据父级的id,只想要其本身的id。并且我这边本身传的数据是数组,而后端需要字符串数据,就有了我需要转来转去的操作。
这是我保存级联选择器数据获取的数据
[['02'],['05', '0501', '050101'],['01', '0101', '010105'],['01', '0104'],['04']]
这个是后端想要的数据样子
['02', '050101', '010105', '0104', '04']
到这里还不是最狗的,为了让级联选择器把已选择的数据展示出来,我展示的数据,数据需要的格式是这样的
["02", "05,0501,050101", "01,0101,010105", "01,0104", "04"]
也就是说我需要做的就是,在保存的时候从获取的数据改成后端需要的数据,然后在我需要展示的时候,把数据从后端获取来的数据改成需要展示的模样,然后把数据再转化成最开始其保存的样子,方便转成后端需要的数据样子。整个过程中还要考虑数据为空的情况,还要保证转化完的数据不要在第二次进行保存的时候,再次转化,变成谁也不认识的数据。
OK,接下来上代码。
首先要做的是把保存的数据转化成后端需要的数据,在这里是在vue里写了一个方法,在保存的时候,对数据进行转化。
majorData(data) {// console.log(data)if (data !== undefined) {// console.log(this.ruleForm.isMappingMajor)let sumData = [];data.map((index) => {if (index.length >= 6) {index = index.split(',')}// console.log(index)if (index.length === 2 && index.constructor === Array) {index = index.slice(-1)}if (index.length === 3 && index.constructor === Array) {index = index.slice(-1)}sumData = sumData.concat(index)return sumData})// console.log(newArr(sumData))return newArr(sumData)} else {data = []// console.log(data)return data}function newArr(arr) {return ([...new Set(arr)])}}
然后要做的是把从后端获取的数据,转化成前端可以展示的数据,这里也是一个方法,把后端获取来的数据进行转化
useMajors(data) {if (data !== null) {var goodMajors = data.map(item => {if (item.length === 4) {item = item.substr(0, 2) + ',' + item}if (item.length === 6) {item = item.substr(0, 2) + ',' + item.substr(0, 4) + ',' + item}return item})return goodMajors}}
好了,根据以上的代码,我的数据就可以自如转化了,接下来附上,我当初为了写方法写的HTML文件,这个可能帮助会更大一些
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>数组分隔</title>
</head><body></body>
<script>var arr1 = [['02'],['05', '0501', '050101'],['01', '0101', '010105'],['01', '0104'],['04']]var arr2 = ['02', '050101', '010105', '0104', '04']var sumData = [];arr1.map((index) => {console.log(index)console.log(index.constructor == Array)if (index.length === 2 && index.constructor === Array) {index = index.slice(-1)}if (index.length === 3 && index.constructor === Array) {index = index.slice(-1)}sumData = sumData.concat(index)return sumData})function newArr(arr) {// .new Set方法,返回是一个类数组,需要结合 ...运算符,转成真实数组return ([...new Set(arr)])}console.log(newArr(sumData))var newData = newArr(sumData)var good = newData.map((index) => {if (index.length === 4) {index = index.substr(0, 2) + ',' + index}if (index.length === 6) {index = index.substr(0, 2) + ',' + index.substr(0, 4) + ',' + index}console.log(index)return index})console.log(good)var a = ["02", "05,0501,050101", "01,0101,010105", "01,0104", "04"]var b = a.map((index) => {if (index.length >= 6) {index = index.split(',')}return index})console.log(b)
</script></html>
上面的方法和下面的HTML代码相对照着看,会更清晰哦!!!
前端 数组转字符串,字符串转数组相关推荐
- 前端 get 请求 拼接数组转换成字符串
取出每条数据ID放到一个数组中 data() { return {checkIds:[1,2,3] } } get 请求 url 拼接 不能拼接数组 可以拼接字符串来解决 //请求字符串拼接var p ...
- 前端JS数组问题: 数组去重, 字符串分割成数组, 数组拼接成字符串
1. 数组去重: Array.from(new Set(arr_name)) let arr1 = ['张三','李四','王五','李四','赵六','张三'];let arr2 = Array.f ...
- element js 包含字符_携程春招题目字符串截取和数组升维
编程风格 简单陈述一下文中代码使用的编程风格: 使用 ES5,以避免有些在线编程平台不支持 ES6 的状况(所以在这里没有用 new Set()) Airbnb 代码规范,不使用单 var 模式 变量 ...
- 把数组里的字符串转换成数字或者把数字转换成字符串
把数组里的字符串转换成数字或者把数字转换成字符串 场景 例:如以下接口返回的'1,2,3' 前端需要转成数组 处理完的数组里面的每一项值都变成的字符串,而我想要的是[1,2,3] 于是就找到了下面的方 ...
- json 解析 转java对象数组对象数组对象_json字符串转java对象数组
需要引入json-lib-2.2-jdk15.jar和ezmorph-1.0.6.jar包 String itemStar = request.getParameter("itemStar& ...
- html5将数组转换为字符串,js如何将数组元素转换为字符串
数组转换为字符串代码实例-51前端 window.οnlοad=function(){ var mian=document.getElementById("mian"); var ...
- Js常用方法:JS字符串截取、数组截取等
Js常用方法:JS字符串截取.数组截取等 Js常用方法(二)String字符串 .Array数组 减操作 前言:前端开发中最常见的就是对字符串.数组或对象增删改查等操作 下面总结一下常用且比较实用的方 ...
- c语言json数组转字符串数组,Json数组转换字符串、字符串转换原数组......
Title 标题: 颜色: 字体: 合并数组,改变原数组apply与不改变原数组 一看见合并数组,可能第一反应就是concat,concat确实具有我们想要的行为,但它实际上并不附加到现有数组,而是创 ...
- vue将数组转换json字符串:JSON.stringify()以及json字符串转换成vue数组:
JSON.stringify():方法用于将 JavaScript 值转换为 JSON 字符串. 语法 JSON.stringify(value [, replacer] [, space]) val ...
- 内置对象的API Array数组对象 String字符串对象 json字符串 JSON对象 js作用域及变量预解析 引用类型与值类型区别 共享引用 基本包装类型 数组去重
01-内置对象的API a.Date对象获取时间 b.Array对象数组加工 c.String对象字符串加工 d.json字符串的语法格式 e.JSON对象的字符串与对象转换应用 02-JS作用域 a ...
最新文章
- Python通过代理ip访问网站
- Vivado 自定义VHDL的IP核
- 云计算:企业商业模式创新的新战线
- 【HDU - 1254 】推箱子 (双bfs)
- Cortex M3 NVIC与中断控制
- 神仙在双11晚上,都干了些啥?
- JAVA 从菜鸟成长为大牛的必经之路
- springbootSecurity的使用
- JSP九大内置对象和四大作用域
- html 滑动门效果,怎样用DW做滑动门的效果
- SQL Server2005彻底卸载
- WinRAR的命令行模式用法介绍
- 获取微信商户平台操作证书
- 优秀的PPT模板网站
- js重写alert事件,避免alert弹框标题出现网址
- SQL Server代理(已禁用代理XP) 出现的原因以及解决方法【通俗易懂,简洁明了】
- Vue和elementUI常用组件问题
- Stereogram(极射赤面)投影--主要用于中高纬和极区的天气图
- strstr(str1,str2)函数使用时注意事项
- 总结一下,什么是鸿蒙?
热门文章
- 【转】互联网产品经理常用软件及工作平台
- RHCE-8-管理变量和事实/任务控制
- 【语篇标记练习题】What are we doing?
- Opencv contours找出最大轮廓
- linux 文件夹同步备份,SyncToy实现本地文件夹同步备份
- IE浏览器中img标签不显示图片
- isolatedModules‘ because it is considered a global script file. Add an import, export, or an empty
- CC1350、CC1352R和CC1352P究竟各有何优势
- CSS 仿谷歌input输入框,失焦时标题在输入框中,聚焦标题上移
- 知瓜数据爬取-机构排行榜