es6 數組和字符串的擴展方法


  • 字符串:主要新增了模板字符串

    數組新增方法:

    Array.from:將類數組或迭代對象轉換成數組

    類數組和數組的相同點:
    
          可以通過下標來訪問,並且可以通過.length來獲取類數組的元素個數
    
    類數組和數組的區別: 類數組不能使用數組的各種api方法,數組沒有問題
    

如何將一個類數組轉換成數組?

  • 第一種方法:通過ES6的Array.from(類數組)來轉換

  • 第二種方法:通過Array.prototype.slice.call(類數組);

  • 第三種方法: ...來轉換類數組

         例如:var newArr=[...類數組名]
    

    類數組通常有哪些呢:arguments,獲取的DOM組成的類數組

  • copywithin:方法淺復制數組的一部分到同一數組中的另一個位置,並返回它,不會改變原數組的長度

      const array1 = ['a', 'b', 'c', 'd', 'e'];
    
      console.log(array1.copyWithin(0, 3, 4));
    
  • find():返回匹配的數組元素,沒有匹配的返回undefined

  • findIndex():返回匹配的數組元素下標,沒有匹配的就返回-1

  • fill(value,start,end) 填充數據

  • keys(), values(), entries()返回迭代器,必須通過for of來遍歷返回

    例如:
    
    for(let [key,value] of arr.entries()) {
    
          console.log(`下標為${key},對應的值為${value}`)
       }
    
    對象也有類似獲取values,keys,entries方法
    
      Object.values():獲取對象的值(即value)
      Object.keys() :獲取對象的屬性(即key)
      Object.entries() 獲取對象的key和value
    
      var obj={
       username:'張三',
       age:20,
       address:'北京'
    }
    
    轉換成字符串拼接的形式:
    let url="http://www.badiu.com/"
     userinfo='張三'&age=20&address=北京
    
    var str="";
    Object.keys(obj).forEach((item,index)=>{
    
       str+=`${item}=${obj[item]}&`
    
    
    })
    
  • includes():檢測數組中是否含有某一個值 有返回true,沒有返回false

  • indexOf() 檢測數組中是否有某一個值 有返回下標,沒有返回-1

     var arr=[
         {id:1001,name:'alice',code:1},
         {id:1001,name:'alice',code:2},
         {id:1001,name:'alice',code:11},
         {id:1001,name:'alice',code:15}
       ]
       var statusArr=[0,1,2]
    
       arr.filter((item,index)=>{
          var flag=false;
          
          return statusArr.includes(item.code)
    
    
       })
    
    
     
     flat:數組扁平化  ES2019
    
       數組扁平化概念:如何將多維數組轉換成一維數組的過程
    
       方法:
    
         1.toString()
    
         2.flat轉換
    
          例如: var arr1 = [1, 2, [3, 4]];
                arr1.flat(); 
                // [1, 2, 3, 4]
    
                var arr2 = [1, 2, [3, 4, [5, 6]]];
                arr2.flat();
                // [1, 2, 3, 4, [5, 6]]
    
                var arr3 = [1, 2, [3, 4, [5, 6]]];
                arr3.flat(2);
                // [1, 2, 3, 4, 5, 6]


免責聲明!

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



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