从数组中的每个字符串中删除引号 - Javascript

时间:2012-08-02 17:07:36

标签: javascript

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

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

由于

4 个答案:

答案 0 :(得分:11)

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

var arrayOfNumbers = arrayOfStrings.map(Number);

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

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


另一个与回调完成相同操作的内置函数是parseFloat

var arrayOfNumbers = arrayOfStrings.map(parseFloat)

parseInt函数不起作用,因为.map()也会将每个成员的当前索引传递给回调,parseInt会尝试使用该函数number作为 radix 参数。



DEMO: http://jsfiddle.net/UDWvH/

[
    20,
    10,
    30,
    100
]

答案 1 :(得分:3)

你可以尝试这样:

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

查看parseInt function

答案 2 :(得分: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

答案 3 :(得分:-3)

您不需要执行任何操作,JavaScript中的双引号是指示其中的数据是字符串的标识符。这意味着它们不是数组或数据本身的一部分。

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