小編給大家分享一下ES6中Array.from()方法有什么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Array.from方法用于將兩類對象轉為真正的數組:類數組的對象( array-like object )和可遍歷( iterable )的對象(包括 ES6 新增的數據結構 Set 和Map )。
let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
};
// ES5 的寫法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c']
// ES6 的寫法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
// NodeList 對象
let ps = document.querySelectorAll('p');
Array.from(ps).forEach(function (p) {
console.log(p);
});
// arguments 對象
function foo() {
var args = Array.from(arguments);
// ...
}
//字符串轉換為字符數組str.split('')
Array.from('hello') // ['h', 'e', 'l', 'l', 'o']
let namesSet = new Set(['a', 'b'])
Array.from(namesSet) // ['a', 'b']
Array.from({ length: 3 }); // [ undefined, undefined, undefined ]對于還沒有部署該方法的瀏覽器,可以用Array.prototype.slice方法替代:
const toArray = (() => Array.from ? Array.from : obj => [].slice.call(obj) )();
Array.from還可以接受第二個參數,作用類似于數組的map方法,用來對每個元素進行處理,將處理后的值放入返回的數組。
Array.from(arrayLike, x => x * x);
// 等同于
Array.from(arrayLike).map(x => x * x);
Array.from([1, 2, 3], (x) => x * x)
// [1, 4, 9]
//Array.from回調函數
var arr1 = Array.from([1,2,3], function(item){
return item*item;
});
var arr2 = Array.from([1,2,3]).map(function(item){
return item*item;
});
var arr3 = Array.from([1,2,3], (item) => item*item);
console.log(arr1); //[ 1, 4, 9 ]
console.log(arr2); //[ 1, 4, 9 ]
console.log(arr3); //[ 1, 4, 9 ]值得提醒的是,擴展運算符(...)也可以將某些數據結構轉為數組。
// arguments 對象
function foo() {
var args = [...arguments];
}
// NodeList 對象
[...document.querySelectorAll('div')]看完了這篇文章,相信你對“ES6中Array.from()方法有什么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。