我在这里搜索过:http://w3schools.com/jsref/default.asp但找不到任何方便的方法来执行此功能。如果我有一个数组var arrayOfStrings = ["20","10","30","100"]
,是否有一种快速方法可以从该数组中的每个字符串中删除所有引号(“)而无需循环?
我基本上想要创建它:var arrayOfNumbers = [20,10,30,100]
由于
答案 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);
}
答案 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循环进行循环。