ES6 中 Array.from() 不能得到的數組元素是 undefined 或是空數組


本文地址:http://www.cnblogs.com/veinyin/p/7944072.html 

 

正確格式

 1 let json = {
 2     '0': 'Waaaa~',
 3     '1': 'Hello,',
 4     '2': 'World!',
 5     length: 3
 6 }
 7 
 8 let arr = Array.from(json);
 9 
10 console.log(arr);

轉換的效果

要進行轉換的必須是 Json 的數組格式,如果在 Json 里面沒有 length 這一項,那么轉換出來的數組就是一個空數組

注釋掉上面第 5 行的結果

因為 Json 的 key 轉換過來對應的是數組的下標,必須注意這一點,下面是幾種情況,都可能會使得數組的值為 undefined

1 key 不能轉成下標

 1 let json = {
 2     'a': 'Waaaa~',
 3     'b': 'Hello,',
 4     'c': 'World!',
 5     length: 3
 6 }
 7 
 8 let arr = Array.from(json);
 9 
10 console.log(arr);

 

2 key 大於等於 length 導致溢出

 1 let json = {
 2     '0': 'Waaaa~',
 3     '1': 'Hello,',
 4     '3': 'World!',
 5     length: 3
 6 }
 7 
 8 let arr = Array.from(json);
 9 
10 console.log(arr);

 

因為 arr[2] 沒有給值,於是給了 undefined ,即便給了 arr[3] 的值是 World! ,但是我數組只能到 arr[2],所以看不到 World! 這一項

3 跟上面一樣也是沒有定義

 1 let json = {
 2     '0': 'Waaaa~',
 3     '1': 'Hello,',
 4     '3': 'World!',
 5     length: 5
 6 }
 7 
 8 let arr = Array.from(json);
 9 
10 console.log(arr);

 

這次把 length 給的大了點,可以看到如果沒有給到的都是 undefined

 

啊啊啊啊啊 ,感覺表達不清楚了,反正就相當於是在賦值 ,前面 key 的是索引值 ,后面的 value 是對應的數組元素的值,length 就是數組的長度,就這樣了

 

 END~~~≥ω≤

 


免責聲明!

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



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