數組的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)})


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM