0
爲什麼map()操作在不同類型的數組上運行時會生成不同的輸出?不同陣列上map()的不同結果
我認爲literal
和obj
下面是相同的類型;爲什麼產生的數組不同?爲什麼非文字數組連接到一個元素?
爲什麼類型化數組不能創建一個字符串數組,而是返回原始類型數組?是否有規範要求映射操作無法將類型化數組轉換爲其他類型?
var literal = [1, 2, 3];
var obj = new Array([1, 2, 3]);
var typed = new Uint32Array([1, 2, 3]);
console.log(literal.map(String));
console.log(obj.map(String));
console.log(typed.map(String));
輸出
Array [ "1", "2", "3" ]
Array [ "1,2,3" ]
Uint32Array [ 1, 2, 3 ]
我運行Firefox 44.0 https://jsfiddle.net/6c8p465r/1/
'new Array'並不真的接受這樣的數組,你最終只有一個索引的數組,並且'Uint..'數組不能包含字符串 – adeneo
**第二種情況:** var'obj'是二維數組,因此在調用'map'之前,在數組上調用'toString()'。 **第三種情況:**'Uint32Array'如名稱所示,存儲無法轉換爲數字的**整數數組**。 – Tushar
有錯字^^^^:最後不能轉換爲** String ** _。 _Timeout:現在無法編輯:(_ – Tushar