Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 NodeJS:如何将大字符串分隔成一个数字数组,然后添加所有索引为偶数的字符串_Javascript_Arrays_Node.js - Fatal编程技术网

Javascript NodeJS:如何将大字符串分隔成一个数字数组,然后添加所有索引为偶数的字符串

Javascript NodeJS:如何将大字符串分隔成一个数字数组,然后添加所有索引为偶数的字符串,javascript,arrays,node.js,Javascript,Arrays,Node.js,从中获取原始字符串的数组如下所示: 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(/\

从中获取原始字符串的数组如下所示:

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]);
  }
}
}   
var winsLossNums=winLoss[0]。匹配(/\d+/g)。映射(编号)
对于(var i=0;i

此代码在一个循环中,每个循环都有一个新的
arr
对象,如上例中所示

假设数组值是字符串,它们之间有一条新行,您可以在数组上进行缩减,在
\n
上拆分每个值,然后在“-”上拆分第一个值时再次进行缩减:

让arr=['11-3\n12-6','5-9\n7-2\n18-2','2-7']
让tot=arr.reduce((a,c)=>{
让pairs=c.split('\n')
返回a+对。减少((a,c)=>a+数(c.split('-')[0]),0)
}, 0)
控制台日志(tot)
console.log(11+12+5+7+18+2)
您可以尝试以下方法:

let arr = [
      [
        '11-3',
        '12-6'
      ], [
        '5-9',
        '7-2',
        '18-2'
      ], [
        '2-7'
      ]
    ];

    let sum = 0;
    for (let index=0; index<arr.length; index++) {
        let arrayMasterElement = arr[index];
        // console.log(arrayMasterElement);
        for (let index2=0; index2<arrayMasterElement.length; index2++) {
          let arrayElement = arrayMasterElement[index2];
          let elementArray = arrayElement.split('-');
          let intVal = parseInt(elementArray[0]);
          console.log('Int value: ' + intVal);
          sum += intVal;
        }
        if (index == arr.length - 1) {
            console.log('Sum: ' + sum);
        }
    }
让arr=[
[
'11-3',
'12-6'
], [
'5-9',
'7-2',
'18-2'
], [
'2-7'
]
];
设和=0;

对于(让index=0;indexI在中编辑了一些代码),Sorry我真的不能告诉您的数组发生了什么。这些多行字符串是带破折号的吗?您能包含引号并使其成为有效的JS或JSON吗?