js-Array.from()


例子1——將類數組轉換為數組

let array = {
    0: 'name', 
    1: 'age',
    2: 'sex',
    3: ['user1','user2','user3'],
    'length': 4
}
let arr = Array.from(array )
console.log(arr) // ['name','age','sex',['user1','user2','user3']]

如果將上面代碼中length屬性去掉arr將會是一個長度為0的空數組,如果將代碼修改一下,就是具有length屬性,但是對象的屬性名不再是數字類型的,而是其他字符串型的,代碼如下:

let array = {
    'name': 'name', 
    'age': 'age',
    'sex': 'sex',
    'user': ['user1','user2','user3'],
    'length': 4
}
let arr = Array.from(array )
console.log(arr)  // [ undefined, undefined, undefined, undefined ]

 

例子2:——將Set解構的數據轉換為數組

let arr = [1,2,3,4,5,6,7,8,9]
let set = new Set(arr)
console.log(Array.from(set))  // [1,2,3,4,5,6,7,8,9]

 

例子3——將字符串轉換為數組

let  str = 'hello world!';
console.log(Array.from(str)) // ["h", "e", "l", "l", "o", " ", "w", "o", "r", "l", "d", "!"]

 

求和Sum

function sum() {
     // Array.from()將arguments類數組轉換為真數組
     // 也可以使用Array.prototype.slice.call(arguments) , 這是ES5語法, 兼容性更好
     return Array.from(arguments).reduce((prev, cur) => {
         return prev + cur
     }, 0)
 }
 
 console.log(sum(1,2,3,4,5,6)); // 21

 

去重

function unique(array) {
     // 亦可以直接return [...new Set(array)],徹底的ES6語法
     return Array.from(new Set(array))
 }
 
 console.log(unique([1,2,2,3,3,5])); // [1, 2, 3, 5] 

 

數組遞增

function range(ends) {
     return Array.from({length: ends}, (_, i) => i + 1)
 }
 
 console.log(range(3)); // [1, 2, 3]

 

利用Array.from() 可以將Unicode編碼拆解成數組。

console.log(Array.from('\u6211\u7231\u6572\u4ee3\u7801')) 
 
//(5) ["我", "愛", "敲", "代", "碼"]

 


免責聲明!

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



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