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如何循环提取对象数组中的值
Nov 18 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
vue+springboot实现登录验证码
May 27 Vue.js
vue-cli4.5.x快速搭建项目
May 30 Vue.js
Vue中foreach数组与js中遍历数组的写法说明
Jun 05 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue项目proxyTable配置和部署服务器
Apr 14 Vue.js
vue使用element-ui按需引入
May 20 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制作静态网站的模板框架(三)
2006/10/09 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
php把数组值转换成键的方法
2015/07/13 PHP
ThinkPHP开发框架函数详解:C方法
2015/08/14 PHP
PHP获取访问页面HTTP状态码的实现代码
2016/11/03 PHP
php自定义函数实现统计中文字符串长度的方法小结
2017/04/15 PHP
XP折叠菜单&仿QQ2006菜单
2006/12/16 Javascript
Firefox window.close()的使用注意事项
2009/04/11 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
JavaScript初学者应注意的七个细节小结
2012/01/30 Javascript
使用Math.floor与Math.random取随机整数的方法详解
2013/05/07 Javascript
js获取当前日期代码适用于网页头部
2013/06/27 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
Vue.js实战之组件之间的数据传递
2017/04/01 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
Python3.6通过自带的urllib通过get或post方法请求url的实例
2018/05/10 Python
Django实战之用户认证(初始配置)
2018/07/16 Python
CSS3 实现的火焰动画
2020/12/07 HTML / CSS
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
自荐信格式技巧有哪些呢
2013/11/19 职场文书
微笑服务演讲稿
2014/05/13 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
java项目构建Gradle的使用教程
2022/03/24 Java/Android
MongoDB支持的索引类型
2022/04/11 MongoDB
图神经网络GNN算法
2022/05/11 Python