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中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
vuex的使用和简易实现
Jan 07 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
vue实现同时设置多个倒计时
May 20 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
Vue+TypeScript中处理computed方式
Apr 02 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php使用反射插入对象示例分享
2014/03/11 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
javascript 内存回收机制理解
2011/01/17 Javascript
浅析JQuery UI Dialog的样式设置问题
2013/12/18 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
微信小程序教程系列之新建页面(4)
2017/04/17 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python写的创建文件夹自定义函数mkdir()
2014/08/25 Python
使用Python & Flask 实现RESTful Web API的实例
2017/09/19 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python reversed函数及使用方法解析
2020/03/17 Python
使用Python合成图片的实现代码(图片添加个性化文本,图片上叠加其他图片)
2020/04/30 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
新加坡领先的在线生活方式和杂货购物网站:EAMART
2019/04/02 全球购物
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
Linux如何为某个操作添加别名
2013/03/01 面试题
opencv实现图像平移效果
2021/03/24 Python
银行出纳岗位职责
2013/11/25 职场文书
销售心得体会
2014/01/02 职场文书
校园创业策划书
2014/01/14 职场文书
售房协议书范本2014
2014/10/23 职场文书
Android Canvas绘制文字横纵向对齐
2022/06/05 Java/Android