4

我在这里搜索过:http ://w3schools.com/jsref/default.asp但找不到任何方便的方法来执行此功能。如果我有一个数组var arrayOfStrings = ["20","10","30","100"],有没有一种快速的方法可以从这个数组中的每个字符串中删除所有引号(“)而不必循环?

我基本上想创建这个:var arrayOfNumbers = [20,10,30,100]

谢谢

4

4 回答 4

16

如果你想要数字转换,你可以这样做......

var arrayOfNumbers = arrayOfStrings.map(Number);

.map()方法创建一个新数组,其中填充了您提供的函数的返回值。

由于内置Number函数接受给定的第一个参数并将其转换为原始数字,因此它非常适合用作.map(). 请注意,它将十六进制表示法解释为有效数字。


另一个可以完成与回调相同的事情的内置函数是parseFloat.

var arrayOfNumbers = arrayOfStrings.map(parseFloat)

然而,该parseInt函数将不起作用,因为还将每个成员.map()的当前索引parseInt传递给回调,并将尝试使用该数字作为基数参数。



演示:http: //jsfiddle.net/UDWvH/

[
    20,
    10,
    30,
    100
]
于 2012-08-02T17:23:45.930 回答
4

你可以这样尝试:

for(var i = 0; i < myArray.length; i++)
{
    myArray[i] = parseInt(myArray[i], 10);
}

看看parseInt 函数

于 2012-08-02T17:11:48.290 回答
0

对于支持JSON.parse的浏览器:

var arr = ["20","10","30","100"];
var newArr = JSON.parse("[" + arr.join() + "]");
console.log(typeof arr[0]);  //string
console.log(typeof newArr[0]);  //number
于 2012-08-02T17:30:47.703 回答
-3

你不需要做任何事情,JavaScript 中的双引号是标识符,表明其中的数据是一个字符串。这意味着它们不是数组或数据本身的一部分。

您可以使用标准的 For 循环进行循环。

于 2012-08-02T17:12:34.243 回答