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-router中hash模式与history模式的区别详解
Dec 15 Vue.js
Vue中强制组件重新渲染的正确方法
Jan 03 Vue.js
如何在VUE中使用vue-awesome-swiper
Jan 04 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
Vue单页面应用中实现Markdown渲染
Feb 14 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue3.0中使用element的完整步骤
Mar 04 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 Vue.js
vue实现登陆页面开发实践
May 30 Vue.js
ant design vue的form表单取值方法
Jun 01 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 代码优化之经典示例
2011/03/24 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
php计算整个目录大小的方法
2015/06/01 PHP
PHP模拟QQ登录的方法
2015/07/29 PHP
深入讲解PHP的Yii框架中的属性(Property)
2016/03/18 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
php中pcntl_fork创建子进程的方法实例
2019/03/14 PHP
[JS源码]超长文章自动分页(客户端版)
2007/01/09 Javascript
js判断背景图片是否加载成功使用img的width实现
2013/05/29 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
关于编写性能高效的javascript事件的技术
2014/11/28 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
Angular2环境搭建具体操作步骤(推荐)
2017/08/04 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python首次安装后运行报错(0xc000007b)的解决方法
2016/10/18 Python
django之session与分页(实例讲解)
2017/11/13 Python
Python实现判断字符串中包含某个字符的判断函数示例
2018/01/08 Python
Python使用Selenium+BeautifulSoup爬取淘宝搜索页
2018/02/24 Python
python计算列表内各元素的个数实例
2018/06/29 Python
浅谈python下tiff图像的读取和保存方法
2018/12/04 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
Python下使用Trackbar实现绘图板
2020/10/27 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
党校学习自我鉴定
2014/02/24 职场文书
勤奋学习演讲稿
2014/05/10 职场文书
财务管理专业自荐书
2014/09/02 职场文书
品德与社会教学反思
2016/02/24 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android