将数字列表转换为字符串列表

时间:2013-06-25 19:41:44

标签: javascript map

为什么以下内容无法在Javascript中运行?

> var a = [1, 2, 3]
undefined
> a.map(toString)
["[object Undefined]", "[object Undefined]", "[object Undefined]"]

但这有效:

> a[1].toString()
"2"

2 个答案:

答案 0 :(得分:4)

您正在尝试调用window.toString函数,Number.prototype必须使用该号码作为接收者。

更简单的解决方案是使用String构造函数:

 a.map(String)

答案 1 :(得分:3)

toString不是一个接受参数的函数,它是全局对象的一个​​方法,但方法不是bound by default in JS

a.map(function (x) { return x.toString(); })

会做你想要的,

a.map(String)

因为String构造函数在作为函数调用时会将其参数强制转换为字符串。