本文地址: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~~~≥ω≤