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_ui上传文件,并传递额外参数操作
Dec 05 Vue.js
vue使用element-ui实现表单验证
Dec 13 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
vue element el-transfer增加拖拽功能
Jan 15 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
如何用vue实现网页截图你知道吗
Nov 17 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
Vue.Draggable实现交换位置
Apr 07 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
php处理json时中文问题的解决方法
2011/04/12 PHP
thinkphp在模型中自动完成session赋值示例代码
2014/09/09 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
基于MVC+EasyUI的web开发框架之使用云打印控件C-Lodop打印页面或套打报关运单信息
2016/08/29 Javascript
jquery动态创建div与input的实例代码
2016/10/12 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
Bootstrap模态框(Modal)实现过渡效果
2017/03/17 Javascript
微信小程序使用video组件播放视频功能示例【附源码下载】
2017/12/08 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
Vue在chrome44偶现点击子元素事件无法冒泡的解决方法
2019/12/15 Javascript
js页面加载后执行的几种方式小结
2020/01/30 Javascript
使用Vue 自定义文件选择器组件的实例代码
2020/03/04 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
[42:00]完美世界DOTA2联赛PWL S3 Phoenix vs INK ICE 第一场 12.13
2020/12/17 DOTA
python动态加载包的方法小结
2016/04/18 Python
Python+Selenium自动化实现分页(pagination)处理
2017/03/31 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
解决Python requests库编码 socks5代理的问题
2018/05/07 Python
Python操作SQLite/MySQL/LMDB数据库的方法
2019/11/07 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
纯css3实现的鼠标悬停动画按钮
2014/12/23 HTML / CSS
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
2013/05/18 面试题
公司担保书范文
2014/05/21 职场文书
介绍信范文
2015/01/31 职场文书
baselines示例程序train_cartpole.py的ImportError
2022/05/20 Python