获取字符串数组javascript的和

获取字符串数组javascript的和,javascript,Javascript,我有一个文本文件: 2|BATH BENCH|19.00 20312100000|ORANGE BELL|1.42 04525514840|BOILER ONION|1.78 我需要找到价格的总和,它是(19.00,1.42,1.78),并在控制台中打印出来 var FilePath=process.argv[2]; var ALUPCS=[]; var小计=0; 常数fs=要求('fs'); const readline=require('readline'); const file=rea

我有一个文本文件:

2|BATH BENCH|19.00
20312100000|ORANGE BELL|1.42
04525514840|BOILER ONION|1.78
我需要找到价格的总和,它是
(19.00,1.42,1.78)
,并在控制台中打印出来

var FilePath=process.argv[2];
var ALUPCS=[];
var小计=0;
常数fs=要求('fs');
const readline=require('readline');
const file=readline.createInterface({
输入:fs.createReadStream(文件路径),
输出:process.stdout,
终端:错误
});
file.on('行',(行)=>{
allUpcs.push(line.split(“|”)[2]).map(Number);
var小计=allUpcs.reduce(函数(pv,cv){return pv+cv;},0);
});
on('close',function(){
log(小计=allUpcs.reduce(函数(pv,cv){return pv+cv;},0));
});
我没有得到正确的输出,结果是小计019.001.421.78


有人能帮忙吗?谢谢。

您没有在任何地方使用
map
的结果,因此您仍然只是将字符串推入数组,然后丢弃
map
的结果

改用这个:

allUpcs.push(parseFloat(line.split('|')[2]));

您应该会因为
allUpcs.push(line.split(“|”)[2]).map(Number)而出错
push()方法返回一个数字(数组的新长度),因此上面没有
.map()
方法。未使用行事件处理程序中的小计计算。您可以删除它们。只有close处理程序中的一个才重要。