数组的some()方法,手写拍平数组

some() 方法用于检测数组中的元素是否满足指定条件(函数提供)。返回值为布尔类型

some() 方法会依次执行数组的每个元素:

  • 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。
  • 如果没有满足条件的元素,则返回false。

注意: some() 不会对空数组进行检测。

注意: some() 不会改变原始数组。

var ages = [3, 10, 18, 20];

function checkAdult(age) {
    return age >= 18;
}

function myFunction() {
    document.getElementById("demo").innerHTML = ages.some(checkAdult);
}

输出结果为:

true

手写拍平数组

  <script>
    function flat(arr){
     while(arr.some(item => Array.isArray(item))){
      arr =  [].concat.apply([],arr);
     }
      return arr;
    }

    var arr = [1, 2, 4, [6, 7, [4, 5]]]
    const newarr = flat(arr)
    console.log(newarr)
  </script>
    //递归实现
    function flat(arr){
      var arr1 =[]
      arr.forEach((value) => {
        if(value instanceof Array){
          arr1 = arr1.concat(flat(value))
        }else {
          arr1.push(value)
        }
      })
      return arr1
    }

将数组扁平化并去除其中重复数据,最终得到一个升序且不重复的数组
Array.from(new Set(arr.flat(Infinity))).sort((a,b) => return{(a-b)})

posted @   嘿!那个姑娘  阅读(798)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示