Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数组的每个元素解析为整数_Javascript_Arrays_Parsing - Fatal编程技术网

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)