Javascript 将数组的每个元素解析为整数
我有一个字符串,我需要将其拆分成一个数组,然后对数组中的每个元素执行数学函数 目前我正在做类似的事情。(事实上,我没有这样做,但这是一个非常简单的例子来解释我的问题Javascript 将数组的每个元素解析为整数,javascript,arrays,parsing,Javascript,Arrays,Parsing,我有一个字符串,我需要将其拆分成一个数组,然后对数组中的每个元素执行数学函数 目前我正在做类似的事情。(事实上,我没有这样做,但这是一个非常简单的例子来解释我的问题 var stringBits = theString.split('/'); var result = parseInt(stringBits[0]) + parseInt(stringBits[3]) / parseInt(stringBits[1]); 我想知道的是,是否有一种方法可以将数组中的每个元素转换为某种类型,从而避
var stringBits = theString.split('/');
var result = parseInt(stringBits[0]) + parseInt(stringBits[3]) / parseInt(stringBits[1]);
我想知道的是,是否有一种方法可以将数组中的每个元素转换为某种类型,从而避免我每次都要显式地解析它。您只需循环:
for(var i = 0; i < stringBits.length; i++) {
stringBits[i] = parseInt(stringBits[i]);
}
for(变量i=0;i
如果在字符串前面添加加号(+),则应将其转换为数字
例如,这将打印3:
var x = "1";
var y = "2";
alert((+x) + (+y));
但我不确定这是否适用于所有浏览器
您的代码将成为:
var stringBits = theString.split('/');
var result = (+stringBits[0]) + (+stringBits[3]) / (+stringBits[1]);
但这只是一个黑客,所以使用时要小心
我认为parseInt
更好地说明了您要做的事情,但是您应该将此职责委托给另一个方法,该方法返回您需要处理的最终数据。转换然后处理,不要在处理时转换。您的代码将更易于阅读。javascript 1.6.has map()),这样你就可以做
intArray = someArray.map(function(e) { return parseInt(e) })
更简单的方法是映射到Number对象
result= stringBits.map(Number);
我希望尽可能避免这样做,这似乎是一个不必要的循环,而实际上它所能做的只是让我的代码更干净一点。在JS中,循环是处理数组的每个条目的唯一方法。如果你只想让代码更干净一点,你可以提供一个方法(例如extractIntsFromString)它将字符串转换为整数数组。然后使用整数数组的元素进行计算。一旦类型转换结束,您可以专注于更干净的代码,现在它只执行数学函数。什么?!?天哪!这应该标记为答案。不是其他答案不正确,而是简单就是天才。它也是最新的(ES6)