首页 > 其他分享 >数组扁平化

数组扁平化

时间:2022-09-23 18:34:56浏览次数:53  
标签:arr console 扁平化 newArr flatten 数组 var

数组扁平化:多维数组变一维数组。

方式1: ES6中的flat函数

let arr = [1,2,3,[4,5,6,[7,9,8]]];
console.log( arr.flat( Infinity ) ); 

方式2:扩展运算符

var arr = [1,2,3,[4,5,6,[7,9,8]]];
function flatten(arr) {
   while (arr.some(item => Array.isArray(item))) {
    arr = [].concat(...arr);
   }
    return arr;
}
console.log(flatten(arr))            

方式3:递归加for循环

      Array.prototype.flatten = function () {
              var newArr = [];
              for (var i = 0; i < this.length; i ++) {
                if (Array.isArray(this[i])) {
                    newArr = newArr.concat(this[i].flatten());
                } else {
                  newArr.push(this[i]);
                }
              }
              return newArr;
            }
            var arr=[1,2,3,[4,5,6,[7,9,8]]]
            console.log(arr.flatten())

原文链接: https://blog.csdn.net/weixin_44499870/article/details/116571351?spm=1001.2014.3001.5502

标签:arr,console,扁平化,newArr,flatten,数组,var
From: https://www.cnblogs.com/yunyin/p/16723857.html

相关文章

  • cC语言第16天,声明器、函数指针与数组
    一、声明器提供标识符与类型信息,用于声明一个标识符的语法被称作声明器。1.声明数组B1.元素类型:int[10];2.数组名:B;3.元素个数:5按照公式,我们写出如下形式的声明:int[10]......
  • java基础-冒泡排序以及稀疏数组
     java基础 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16720908.html Ø 冒泡排序原理:比较数组中,两个相邻的元......
  • 对象数组去重(保留最后的数据)
    constarrayUnique=(arr:any,name:any)=>{varhash:any={}returnarr.reduce((acc:any,cru:any,index:any)=>{if(!hash[cru[name]]){......
  • JS 数组操作
    一、改变原数组方法  push()、pop()、shift()、unshift()、reverse()、sort()、splice() 二、数组操作方法ps:新增返回lenth,删除返回当前元素1、push()将......
  • laravel DB::select 结果转为数组
    1、select结果数组元素为对象,需要将对象转为数组,方便使用。$sql="selectid,order_code,contentfromoms_order_logwhereid<10";$data=DB::select($sql);dd......
  • 算法练习-第二天【数组】
    数组977.有序数组的平方参考:代码随想录977.有序数组的平方看完题目的第一想法根据题意直接每个元素求平方,然后排个序,提交。时间复杂度O(\(nlogn\))。funcsortedSqua......
  • 【小技巧】快速读取数组中的对象
    背景开发中经常遇到需要从数组中读取某个对象,每次遍历数组查询并不是一个好的选择,会消耗无谓的资源,我们可以使用一个对象作为中间结构,后续再次读取对象是可以直接从中间对......
  • js实现数组内相邻元素上移,下移
    上移、下移/**   *移动切换位置   *@param{Array}arr数据源   *@param{Number}index序号   *@param{String}type上移下移......
  • .map 给数组对象添加新属性
    letmenuList=[{name:'晓明',age:18},{name:'黎明',age:20},{name:'德华',age:28},]constlist=this.list.map((item)=>({...item,title:`新属性1`......
  • 可变长参数和数组的异同
    1,可变长参数和数组的异同   1.1相同:    都可以在方法中作为数组类型的参数   在方法中处理时都当作数组处理      1.2不相同:    ......