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