首页 > 其他分享 >flat 拍平数组 手写flat拍平数组

flat 拍平数组 手写flat拍平数组

时间:2024-02-02 17:44:29浏览次数:22  
标签:flat arr 拍平 res let 数组 concat

// flat 拍平一维数组
       let flaoatArr = [1, 3, 5, 6, 3, 6, [3, 46, 465, 3]]
       let res = flat(flaoatArr)
       console.log(res);
       let res = flaoatArr.flat()
       console.log(res);
       
       
       
       // 手写float 数组  Array.prototype.concat.apply([], arr)
        let flaoatArr = [1, 3, 5, 6, 3, 6, [3, 46, 465, 3, [35, 4, 5, 3]]]
       function flat(arr) {
           let hasDeep = arr.some((item) => item instanceof Array)
           if (!hasDeep) {
               return arr
           }
           const res = Array.prototype.concat.apply([], arr)
           return flat(res)  //利用递归拍平多维数组
       }
       //第二种写法。本质都是一样
       function flat(arr){
           while(arr.some(item=>item instanceof Array)){
               arr = Array.prototype.concat.apply([],arr)
           }
           return arr
       }
       // concat 合并数组  可以合并
       let arr1 = [1,2,6,4]
       let arr2 = [5,4,6,4]
       let arr3 =arr1.concat(arr2)
       let arr3 =arr1.concat(9999,[111])
       let arr3 =arr1.concat(arr2,9999,[111])
       console.log(arr3);

        // arr.some()函数
       // some函数可以遍历每一项,都符合即返回true

标签:flat,arr,拍平,res,let,数组,concat
From: https://www.cnblogs.com/wszzj/p/18003589

相关文章

  • JAVA数组练习代码
    一维数组的有序插入思路代码点击查看代码importjava.util.Scanner;/***@authorLittleBear*@date2024-02-02-16:57*/publicclassseqInsertion{publicstaticvoidmain(String[]args){System.out.println("pleaseinputyournum:");......
  • JAVA二维数组
    二维数组介绍二位数组的每个元素都是一维数组二维数组在内存中的形式动态初始化1动态初始化2动态初始化3(列数不确定)静态初始化二维数组使用细节和注意事项......
  • 双指针秒杀七道数组题目
    删除有序数组中的重复项简单解释一下什么是原地修改:如果不是原地修改的话,我们直接new一个int[]数组,把去重之后的元素放进这个新数组中,然后返回这个新数组即可。但是现在题目让你原地删除,不允许new新数组,只能在原数组上操作,然后返回一个长度,这样就可以通过返回的长度和原......
  • c++结构体数组sort排序出错?(关于sort排序comp比较器的严格弱排序性质)
    在sort函数比较的时候,它会严格弱排序,比较a是否>=b,然后两个对象会进行交换,重新比较一遍,相当于这次比较的是b是否>=aa>=b?满足:trueb<=a?满足:true这样就出现了一个冲突,不管是a>=b还是b>=a都会返回true的情况,我们都知道sort中只要comp返回true,两个元素就会交换一次......
  • JAVA一维数组的赋值,拷贝,反转,扩容
    赋值(引用传递)拷贝反转扩容......
  • JAVA一维数组介绍和初始化
    一维数组概述一维数组的初始化(声明数组并开辟内存空间)动态初始化1动态初始化2静态初始化一维数组的使用细节......
  • 在 C# 中,`int[]`(数组)和 `List<int>`(列表)都可以用来存储一组整数,但它们有一些重要的区
    在C#中,int[](数组)和List<int>(列表)都可以用来存储一组整数,但它们有一些重要的区别:大小:int[]的大小在创建时就确定了,不能改变。而List<int>的大小是动态的,可以添加或删除元素,大小会自动调整¹。方法:List<int>提供了许多方便的方法,如Add、Remove、Insert等,而int[]没有这些方......
  • 寻找旋转排序数组中的最小值
    153FindMinimuminRotatedSortedArray问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。请找出其中最小的元素。示例1:输入:[3,4,5,1,2]输出:1示例2:输入:[4,5,6,7,0,1,2]输出:0/**......
  • 在排序数组中查找元素的第一个和最后一个位置
    34FindFirstandLastPositionofElementinSortedArray问题描述:给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn)级别。如果数组中不存在目标值,返回[-1,-1]。示例1:输入:n......
  • 搜索旋转排序数组
    33SearchinRotatedSortedArray问题描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组[0,1,2,4,5,6,7]可能变为[4,5,6,7,0,1,2])。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回-1。你可以假设数组中不存在重复的元素。你......