javascript - NodeJS:如何将大字符串分成一个数字数组,然后将所有具有偶数索引的字符串相加
问题描述
我从中获取原始字符串的数组如下所示:
arr[0]:
11-3
12-6
arr[1]:
5-9
7-2
18-2
arr[2]:
2-7
(这只是一个例子,一般的想法是其中可以有任意数量的对象,arr
并且每个对象中的字符串包含任意数量的#-#组合)
我正在尝试将左侧的所有数字加在一起(如果使用上面的示例,它会将 11、12、5、7、18 和 2 之类的东西加在一起)并将该数字存储在一个变量中。
我该怎么办?
编辑1:尝试的代码:
var winsLossNums = winLoss[0].match(/\d+/g).map(Number)
for (var i = 0; i < winLoss[0].match(/\d+/g).map(Number).length; i++) {
if (i % 2 === 0) {
totalNums.push(winLoss[0].match(/\d+/g).map(Number)[i]);
}
}
}
这段代码在一个循环中,每个循环都有一个新arr
对象,就像上面的例子一样
解决方案
假设您的数组值是字符串,它们之间有一个新行,您可以对数组进行归约,将每个值拆分\n
并再次归约,将第一个值拆分为“-”:
let arr = ['11-3\n12-6', '5-9\n7-2\n18-2', '2-7']
let tot = arr.reduce((a, c) => {
let pairs = c.split('\n')
return a + pairs.reduce((a, c)=> a + Number(c.split('-')[0]), 0)
}, 0)
console.log(tot)
console.log(11 + 12 + 5 + 7+ 18 + 2)
\n
如果每行不干净,您可能需要清理数据或拆分空格。但这应该是一个好的开始。
推荐阅读
- android - 如何动态更新幻灯片菜单的项目(没有“recreate()”)
- python - 使用多个循环的列表理解
- python - Dask,根据下一行添加新列
- python - GUIzero:“'int' 对象不可下标”,变量强制为字符串
- json - 如何在循环中使用 JSONObject.put 方法
- c++ - Cmake 无法与 Clion 2021.2 中的 OpenImageIO 链接
- python - 语义搜索微调
- redoc - 如何将 Redoc 发布到 gh-pages
- jasper-reports - 满足数据集的条件时分页
- material-ui - 材质 UI 日期选择器使用默认主题而不是自定义主题