Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как подсчитать процент количества единиц в строке? (https://javascript.ru/forum/misc/80079-kak-podschitat-procent-kolichestva-edinic-v-stroke.html)

AlexRow 24.04.2020 16:45

Как подсчитать процент количества единиц в строке?
 
Стоить задача при вводе параметра, который состоить из рандомного количества нулей и единиц, функция должна возвращать процент количества единиц. Я знаю, как подсчитать количество символов в строке, но мне неизвестен метод, который может подсчитать количество определенных символов в строке. Подскажите вариант решения?

function getSuccessRate(statistic){
      
      return statistic.length
    }
    console.log(getSuccessRate('001101'))

Paguo-86PK 24.04.2020 17:00

console.log(statistic.replace(/[^1]+/gm, "").length * 100 / statistic.length)

рони 24.04.2020 17:24

Paguo-86PK,
length маловато :)

AlexRow 24.04.2020 18:35

Собраши инфу с нескольких форумов, сработал вариант
 
let getSuccessRate = (statistic) => {
  if(statistic === ''){
    return 0
  }
  else{
  let length = statistic.length
  let charSplit = statistic.split('');
  let result = charSplit.filter(char => char === '1');
  return +((result.length/length)*100).toFixed(0);
  }
};

voraa 24.04.2020 20:02

let getSuccessRate = (statistic) => [].reduce.call(statistic, (a, c) => a+= (c==='1'), 0) / statistic.length

Vlasenko Fedor 24.04.2020 21:05

еще вариант

function getSuccessRate(statistic) {
  return statistic.match(/1/g).length / statistic.length
}

console.log(getSuccessRate('001101'))

рони 24.04.2020 21:13

:) :write:
let getSuccessRate = (statistic, patern) => `${100 * [...statistic].reduce((a, c) => a+= (c === patern) , 0) / statistic.length | 0}%`;
console.log(getSuccessRate('001101', '1'))


Часовой пояс GMT +3, время: 03:41.