ES 6 Aray新規API

19653 ワード

ES 6 Aray新規API
  • 静的方法
  • Aray.of(arg)
  • Aray.from
  • 例示的な方法
  • find
  • findIndex
  • fill(data)
  • copyWithin
  • includes
  • 静的方法
    Aray.of(arg)
                     ,      ,     
    
    const arr = Array.of(5);
    console.log(arr)	//[5]
    const arr1 = Array.of(1,2,4,5,2,1);
    console.log(arr1)	//[1, 2, 4, 5, 2, 1]
    
             ,         Array()   。         ,   Array()      。
    
    Array.of() // []
    Array.of(undefined) // [undefined]
    
    Array.of            。      ,        。
    
    下記のコードシミュレーションで実現できます.
    function ArrayOf(){
         
      return [].slice.call(arguments);
    }
    const arr = ArrOf(1,2,3,4,5,6) // [1,2,3,4,5,6]
    
    Aray.from(arg)
                (iterable)          
    
    //     ,           
    const arr = Array.from([1, 2])//[1,2]
    
    //            length   ,                      。
    let obj = {
         
        '0': 'a',
        '1': 'b',
        '2': 'c',
        length: 3
    };
    const arr = Array.from(obj); // ['a', 'b', 'c']
    // ES5   
    const arr1 = [].slice.call(obj); // ['a', 'b', 'c']
    //   length   ,       []
    //                 ,      length      undefined     [undefined]
    
    //NodeList       
    let div = document.getElementsByTagName("div");
    const a = Array.from(div);
    console.log(a);//[div,div,div]
    //ES5   
    const b = Array.prototype.slice.call(div,0)
    //const b = [].prototype.slice.call(div,0)
    console.log(b);//[div,div,div]
    
    //   (iterable)       
    //Set
    const set = new Set(['a', 'b'])
    const a = Array.from(set) 
    console.log(a);// ['a', 'b']
    
    //String         
    const str = 'abc';
    console.log(Array.from(str)); // ["a", "b", "c"]
    
    //        ,          
    //     JavaScript    \uFFFF  Unicode   ,        bug。
    const str = '';
    console.log(str.length);//2
    function countSymbols(string) {
         
        return Array.from(string).length;
    }
    console.log(countSymbols(str));//1
    
    実例的な方法
    find(calback)
                
    
    const arr= [1,3,5,7,9]
    arr.find(n => n >5) //7
    
    findIndex(calback)
                  
    
    const arr= [1,3,5,7,9]
    arr.findIndex(n => n >5) //3
    
    fill(data)
              
    
    const arr = new Array(3);
    arr.fill("qwer")   
    console.log(arr);//["qwer", "qwer", "qwer"]
    
    //       
    //           ,
    //      (  )     ,   0,
    //      (  )     ,     this.length
    const d = [1,2,3,4,5]
    d.fill(2,2)
    console.log(d);//[1,2,2,2,2]+
    
    copyWithin(targt,[start],[end])
           ,               (       ),        
           。
    target(  ):          。     ,    。
    start(  ):          ,    0。     ,         。
    end(  ):           ,        。     ,         。
    
    const arr = [1,2,3,4,5]
    arr.copyWithin(0,1)//[2, 3, 4, 5, 5]
    
    includes(data)
    [1, 2, 3].includes(2)     // true
    [1, 2, 3].includes(4)     // false
    [1, 2, NaN].includes(NaN) // true
    
    この方法の2番目のパラメータは、検索の開始位置を表し、デフォルトは0です.2番目のパラメータが負の場合は、逆数の位置を表します.このときは配列長より大きい場合(例えば、2番目のパラメータは−4ですが、配列長は3です)、0からリセットされます.
    [1, 2, 3].includes(3, 3);  // false
    [1, 2, 3].includes(3, -1); // true