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 相关文章推荐
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
vuex的数据渲染与修改浅析
Nov 26 Vue.js
使用vue编写h5公众号跳转小程序的实现代码
Nov 27 Vue.js
基于vue项目设置resolves.alias: '@'路径并适配webstorm
Dec 02 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
vue-cli中实现响应式布局的方法
Mar 02 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
Vue的列表之渲染,排序,过滤详解
Feb 24 Vue.js
关于vue-router-link选择样式设置
Apr 30 Vue.js
vue使用watch监听属性变化
Apr 30 Vue.js
vue实现简易音乐播放器
Aug 14 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中慎用双等于(==)的详解
2013/06/06 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php生成动态验证码gif图片
2015/10/19 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
php修改数组键名的方法示例
2017/04/15 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
对laravel的session获取与存取方法详解
2019/10/08 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
boxy基于jquery的弹出层对话框插件扩展应用 弹出层选择器
2010/11/21 Javascript
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
js实现九宫格图片半透明渐显特效的方法
2015/02/16 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
2015/09/01 Javascript
基于canvas实现的钟摆效果完整实例
2016/01/26 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
浅析JavaScript异步代码优化
2019/03/18 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
Python实现多线程抓取妹子图
2015/08/08 Python
python编程实现归并排序
2017/04/14 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
一些PHP的面试题
2015/05/06 面试题
中学生英语演讲稿
2014/04/26 职场文书
离婚协议书范文
2015/01/26 职场文书
大学生自我评价范文
2015/03/03 职场文书
搞笑结婚保证书
2015/05/08 职场文书
安全教育培训制度
2015/08/06 职场文书
请假条应该怎么写?
2019/06/24 职场文书
MySQ InnoDB和MyISAM存储引擎介绍
2022/04/26 MySQL