我有一个表格数组:
['32 68', '56 78', '77 99']
我想使用JavaScript(NodeJS)o / p另一个数组,它将包含索引中每个元素的总和。像,
['100', '134', '176']
我尝试使用.split("")
,但是双整数再次被分隔为单独的数字。有没有其他方法可以解决这个问题?请注意,i / p可以是单位数字或双位数。
答案 0 :(得分:5)
您需要获取每个项目,在空格上拆分(如果存在),然后添加相应的拆分。像这样:
var origValues = ['32 68', '56 78', '77 99', '7'];
var addedValues = origValues.map(function(value) {
return value.split(' ')
.map(function(sArray) {
return parseInt(sArray);
})
.reduce(function(a, b) {
return a + b;
});
});
document.write(JSON.stringify(addedValues));
请注意,上面的示例处理了数组值中只有一位数字的情况。
提供有关正在发生的事情的一些解释......
“绘画”形式的样子:
Start: origValues = ['32 68', '56 78', '77 99', '7']
Apply map (this will track one value): value = '32 68'
Apply the split: ['32', '68']
Map the parse integer function (I'm going to track both values): [32, 68]
Reduce: 32 + 68 = 100
答案 1 :(得分:4)
我没有时间解释(抱歉)但是,split + reduce会这样做。
var arr = ['32 68', '56 78', '77 99'];
var sumArray = arr.map(function (s) {
return s.split(' ').reduce(function (a, b) {
return parseInt(a, 10) + parseInt(b);
});
});
document.write(JSON.stringify(sumArray));

答案 2 :(得分:0)
您实际上并不需要地图或任何东西。对于每个字符串,我们可以.split
,Number
ify,然后添加。
secondArray[value] =
Number((firstArray[value].split(" "))[0]) +
Number((firstArray[value].split(" "))[1]);
修改它并将其转换为for循环,我们得到:
var arr2 = [];
for(var i = 0; i < arr.length; i ++){
arr2.push(
Number((arr[i].split(" "))[0]) +
Number((arr[i].split(" "))[1]));
}
arr = arr2;