Массив, из которого я получаю свои исходные строки, выглядит примерно так:
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, как в приведенном выше примере.
Я не могу точно сказать, что происходит с вашим массивом. Это многострочные строки с тире? Можете ли вы включить кавычки и сделать его действительным JS или JSON?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Предполагая, что ваши значения массива представляют собой строки с новой строкой между ними, вы можете уменьшить массив, разделить каждое значение на \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.info(tot)
console.info(11 + 12 + 5 + 7+ 18 + 2)Вам может потребоваться очистить данные или разделить их на пробелы, если это не чистый \n на строку. Но это должно быть хорошим началом.
Вы можете попробовать это:
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.info(arrayMasterElement);
for (let index2=0; index2<arrayMasterElement.length; index2++) {
let arrayElement = arrayMasterElement[index2];
let elementArray = arrayElement.split('-');
let intVal = parseInt(elementArray[0]);
console.info('Int value: ' + intVal);
sum += intVal;
}
if (index == arr.length - 1) {
console.info('Sum: ' + sum);
}
}
Я отредактировал код, извините