日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ES6 数组、对象的扩展

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ES6 数组、对象的扩展 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

8. 數組的擴展

  • 擴展運算符(...),將一個數組轉為用逗號分隔的參數序列。

    • 復制數組 const a2=[...a1]
    • 合并數組 [...arr1, ...arr2, ...arr3]; arr1.concat(arr2, arr3);// ES5 的合并數組 這是淺拷貝,如果修改了原數組的成員,會同步反映到新數組。
    • 替代函數的 apply 方法 // ES6 的寫法 let arr1 = [0, 1, 2]; let arr2 = [3, 4, 5]; arr1.push(...arr2);
  • Array.from() 方法用于將兩類對象轉為真正的數組:類似數組的對象(array-like object)和可遍歷(iterable)的對象(包括 ES6 新增的數據結構 Set 和 Map)。

    let ps = document.querySelectorAll('p'); Array.from(ps).filter(p => {return p.textContent.length > 100; });
  • Array.of() 方法用于將一組值,轉換為數組

    Array.of(3, 11, 8) // [3,11,8]
  • 數組實例的 copyWithin()
    【替換位置,讀取數據開始位置,結束位置】,如果為負值,表示倒數。

    [1, 2, 3, 4, 5].copyWithin(0, 3) // [4, 5, 3, 4, 5]
  • 數組實例的 find() 和 findIndex()
    find()所有數組成員依次執行該回調函數,直到找出第一個返回值為true的成員,然后返回該成員。如果沒有符合條件的成員,則返回undefined。
    findIndex()

  • fill() 方法使用給定值,填充一個數組

  • entries(),keys() , values() 用于遍歷數組
    keys()是對鍵名的遍歷、values()是對鍵值的遍歷,entries()是對鍵值對的遍歷。

    for (let [index, elem] of ['a', 'b'].entries()) {console.log(index, elem); } // 0 "a" // 1 "b"
  • includes() 表示某個數組是否包含給定的值
    indexOf方法有兩個缺點,一是不夠語義化,它的含義是找到參數值的第一個出現位置,所以要去比較是否不等于-1,表達起來不夠直觀。二是,它內部使用嚴格相等運算符(===)進行判斷,這會導致對NaN的誤判。

  • flat(),flatMap()
    flat()用于將嵌套的數組“拉平”,變成一維的數組。該方法返回一個新數組,對原數據沒有影響。可以將flat()方法的參數寫成一個整數,表示想要拉平的層數,默認為1,Infinity所有層。如果原數組有空位,跳過空位。
    Array.prototype.map(),然后對返回值組成的數組執行flat()方法。該方法返回一個新數組,不改變原數組。

    // 相當于 [[2, 4], [3, 6], [4, 8]].flat() [2, 3, 4].flatMap((x) => [x, x * 2]) // [2, 4, 3, 6, 4, 8]
  • 數組的空位
    ES6 則是明確將空位轉為undefined。

  • 9. 對象的擴展

  • 屬性、方法簡寫

    {f} 等同于 {f:f} method() {return "Hello!"; } //等同于 method: function() {return "Hello!"; }
  • 屬性名表達式
    obj['a' + 'bc'] = 123;

  • 方法的name屬性返回函數名(即方法名)

  • Object.is() 比較兩個值是否相等

  • Object.assign方法用于對象的合并

    const target = { a: 1 }; const source1 = { b: 2 }; const source2 = { c: 3 }; Object.assign(target, source1, source2); target // {a:1, b:2, c:3}

    Object.assign方法的第一個參數是目標對象,后面的參數都是源對象。
    注意:如果目標對象與源對象有同名屬性,或多個源對象有同名屬性,則后面的屬性會覆蓋前面的屬性。是淺拷貝

  • 屬性的可枚舉性和遍歷

  • 7.
    8.
    9.

  • Object.keys(),Object.values(),Object.entries()
    Object.keys() 返回一個數組,所有鍵名
    Object.values() 返回一個數組,所有屬性的值
    Object.entries() 鍵值對數組 [ ["key", "value"], ["key", value] ]

  • 對象的擴展運算符(...)
    和數組相似

  • 轉載于:https://www.cnblogs.com/conglvse/p/9759137.html

    總結

    以上是生活随笔為你收集整理的ES6 数组、对象的扩展的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。