Разбить строку на отдельные числа в javascript - PullRequest
0 голосов
/ 29 апреля 2020

Следующий код ищет в таблице #operations для каждого <td> с помощью Dynami c class ".fuel "+ACID:

let k = 0;  
let ac_fuel = 0;
parsed.data.forEach(arrayWithinData => {
    let ACID = parsed.data[k][0];
    if($("#operations td").hasClass("fuel "+ACID)) {
        console.log("we have a "+ACID);
        console.log(($("#operations td.fuel."+ACID).text()));
        ac_fuel += parseFloat($("#operations td.fuel."+ACID).html());
        console.log(ac_fuel);
    }
    k++;
})

ac_fuel записывается в виде строки чисел, например:

61.001.001.00643.00632.006.001.002181.22

Как бы я разделил эти числа, чтобы я мог сложить их вместе? желаемый результат - сумма каждого элемента <td> с классом ".fuel "+ACID:

61.00 + 1.00 + 643.00 + 632.00 + 6.00 + 1.00 + 2181.22

1 Ответ

0 голосов
/ 29 апреля 2020

Вы должны использовать js .split функцию

let numsString = '61.001.001.00643.00632.006.001.002181.22';
let numsArr = numsString.split('.');
let summ = 0;

// set + before num, so it will be converted from string to num
numsArr.map(num => summ += +num);

console.log(summ);

Так что в вашем коде я считаю, что это будет что-то вроде этого

let k = 0;  
let ac_fuel = 0;
parsed.data.forEach(arrayWithinData => {
  let ACID = parsed.data[k][0];
  if($("#operations td").hasClass("fuel "+ACID)) {
    ac_fuel += parseFloat($("#operations td.fuel."+ACID).html());
  }
  k++;
})

let numsString = $("#operations td.fuel." + ACID).html();
let numsArr = numsString.split('.');
let summ = 0;

// set + before num, so it will be converted from string to num
numsArr.map(num => summ += +num);

ac_fuel += summ;
console.log(ac_fuel);
...