vue 把二维或多维数组转一维数组


Posted in Vue.js onApril 24, 2022

将二维数组转化为一维数组

需求

数组嵌套数据,导致循环不方便,想着将二维数组合并成一维数据,方便数据的操作

具体实现

利用reduce方法

reduce:不改变原数组,返回一个新的数组。就是遍历数组元素,从头开始,依次往下,第一个参数是上一次的返回值,第二个参数是下一个数组元素,首次的时候第一个和第二个参数分别是 array[0], array[1] ;

let flat=[[1,2,3],[4,5,6],[6,7,8]].reduce( (prev,next)=> {
    return prev.concat(next);//循环将数组进行拼接
});
console.log(flat);

vue 把二维或多维数组转一维数组

将多维数组转一维数组6种方法

ES6 flat方法

var arr=[1,[[[2,3],4]],5];
arr.flat(Infinity)//[1, 2, 3, 4, 5]

递归

var arr=[1,[[[2,3],4]],5];
var newArr=[];
function Arr(arr){
    arr.map(item=>{
        if(Array.isArray(item)){
             Arr(item)
        }else{
            newArr.push(item)
        }
    })
    return newArr
}
console.log(Arr(arr));//[ 1, 2, 3, 4, 5 ]

reduce +concat + 递归

var arr=[[[[2,3],4]],5];
function concatArr(arr){
  var newArr=arr.reduce((pre,next)=>{
       return pre.concat(Array.isArray(next)?concatArr(next):next)
  },[])
  return newArr;
}
console.log(concatArr(arr));//[ 2, 3, 4, 5 ]

join+split

var arr=[[1,2],3,[4,[5]]];
var arr1=arr.join().split(',');
console.log(arr1);//["1", "2", "3", "4", "5"]

toString+split

var arr=[[1,2],3,[4,[5]]];
var arr1=arr.toString().split(',');
console.log(arr1);//["1", "2", "3", "4", "5"]

eval

var arr=[[1,2],3,[4,[5]]];
var arr1=eval('[' + arr + ']');
console.log(arr1);//[ 1, 2, 3, 4, 5 ]

Tags in this post...

Vue.js 相关文章推荐
VUE+Element实现增删改查的示例源码
Nov 23 Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 Vue.js
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
Jan 13 Vue.js
vue实现验证用户名是否可用
Jan 20 Vue.js
Vue使用Ref跨层级获取组件的步骤
Jan 25 Vue.js
vue+django实现下载文件的示例
Mar 24 Vue.js
vue使用节流函数的踩坑实例指南
May 20 Vue.js
vue-cli3.0修改打包后的文件名和文件地址,打包后本地运行报错解决
Apr 06 Vue.js
vue elementUI表格控制对应列
Apr 13 Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 Vue.js
Vue OpenLayer 为地图绘制风场效果
Apr 24 #Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
vue @click.native 绑定原生点击事件
Apr 22 #Vue.js
vue实现省市区联动 element-china-area-data插件
vue修饰符.capture和.self的区别
Apr 22 #Vue.js
vue 自定义组件添加原生事件
Apr 21 #Vue.js
vue 自定义的组件绑定点击事件
Apr 21 #Vue.js
You might like
ThinkPHP CURD方法之where方法详解
2014/06/18 PHP
ThinkPHP结合AjaxFileUploader实现无刷新文件上传的方法
2014/10/29 PHP
PHP PDOStatement::errorCode讲解
2019/01/31 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
Laravel 添加多语言提示信息的方法
2019/09/29 PHP
弹出广告特效代码(一个IP只弹出一次)
2007/05/11 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
原生javascript实现匀速运动动画效果
2016/02/26 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
nodejs服务搭建教程 nodejs访问本地站点文件
2017/04/07 NodeJs
详解vue中computed 和 watch的异同
2017/06/30 Javascript
React实践之Tree组件的使用方法
2017/09/30 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
2020/12/15 Vue.js
Python实现检测服务器是否可以ping通的2种方法
2015/01/01 Python
Python求导数的方法
2015/05/09 Python
python线程、进程和协程详解
2016/07/19 Python
Python使用PDFMiner解析PDF代码实例
2017/03/27 Python
python保存数据到本地文件的方法
2018/06/23 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
python 比较2张图片的相似度的方法示例
2019/12/18 Python
python线程join方法原理解析
2020/02/11 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
校领导推荐信
2013/11/01 职场文书
改进作风怎么办发言材料
2014/08/17 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
2014年建筑工程工作总结
2014/12/03 职场文书
大一学生个人总结
2015/02/15 职场文书
家长会主持词开场白
2015/05/29 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
python如何将mat文件转为png
2022/07/15 Python