Array.from()
es6 Array.from() 方法將兩類對象轉為真正的數組
用法:用于將兩類對象轉為真正的數組:類似數組的對象和可遍歷(iterable)的對象(包含ES6新增的數據結構Set和Map);
說明:1)只要是部署了Iterator接口的數據結構,Array.from都能將其轉化為數組
2)如果參數是一個真正的數組,Array.from會返回一個一模一樣的新數組。
3)擴展運算符背后調用的是遍歷器接口(Symbol.iterator),如果一個對象沒有部署這個接口,就無法轉換。Array.from方法還支持類似數組的對象。所謂類似數組的對象,本質特征只有一點,即必須有length屬性。因此,任何有length屬性的對象,都可以通過 Array.from方法轉為數組,而此時擴展運算符就無法轉換。
注意:對于還沒有部署該方法的瀏覽器,可以用Array.prototype.slice方法替代
const toArray = (() => {
Array.from ? Array.from : obj => [].slice.call(obj);
})
例:
let arrayLike = {
'0': 'a',
'1': 'b',
'2':'c',
length: 3
};
//es5的寫法
var arr1 = [].slice.call(arrayLike);
//es6寫法
var arr2 = Array.from(arrayLike);
例2:dom返回的NodeList集合和函數內部的arguments對象
//NodeList對象
let ps = document.querySelectorAll('p');
Array.from(ps).filter(p => {
return p.textContent.length > 100;
})
//arguments對象
function foo() {
var args = Array.from(arguments);
}
例3:
Array.from({ length: 3 });
// [ undefined, undefined, undefined ]
Array.from可以接受第二個參數 作用類似數組的map方法
例3:
Array.from(arrayLike, x => x * x);
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x);
轉載于:https://www.cnblogs.com/insignificant-malt/p/8528882.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的Array.from()的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vuex-状态管理模式
- 下一篇: 青玉案·元夕