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编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
vue中如何添加百度统计代码
Dec 19 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
Vite和Vue CLI的优劣
Jan 30 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
Feb 20 Vue.js
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
vue如何实现关闭对话框后刷新列表
Apr 08 Vue.js
vue选项卡切换的实现案例
Apr 11 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
vue3不同环境下实现配置代理
May 25 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输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
php include类文件超时问题处理
2015/02/06 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PDO::errorCode讲解
2019/01/28 PHP
深入理解Javascript闭包 新手版
2010/12/28 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
javascript编写贪吃蛇游戏
2015/07/07 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
easyUI实现(alert)提示框自动关闭的实例代码
2016/11/07 Javascript
详解jQuery停止动画——stop()方法的使用
2016/12/14 Javascript
对vue事件的延迟执行实例讲解
2018/08/28 Javascript
Vue.js实现tab切换效果
2019/07/24 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
vue项目中使用vue-layer弹框插件的方法
2020/03/11 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
一个基于flask的web应用诞生 用户注册功能开发(5)
2017/04/11 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
Python 中判断列表是否为空的方法
2019/11/24 Python
Python调用.net动态库实现过程解析
2020/06/05 Python
python脚本和网页有何区别
2020/07/02 Python
使用python脚本自动生成K8S-YAML的方法示例
2020/07/12 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
Bjorn Borg官方网上商店:国际运动时尚品牌
2016/08/27 全球购物
工作交流会欢迎词
2014/01/12 职场文书
运动会获奖感言
2014/02/11 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
法人委托书范本
2014/04/04 职场文书
体育运动口号
2014/06/09 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年重阳节主持词
2015/07/04 职场文书
Golang 正则匹配效率详解
2021/04/25 Golang
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript