Как подсчитать процент количества единиц в строке?
Стоить задача при вводе параметра, который состоить из рандомного количества нулей и единиц, функция должна возвращать процент количества единиц. Я знаю, как подсчитать количество символов в строке, но мне неизвестен метод, который может подсчитать количество определенных символов в строке. Подскажите вариант решения?
function getSuccessRate(statistic){
return statistic.length
}
console.log(getSuccessRate('001101'))
Ответы (3 шт):
Автор решения: Grundy
→ Ссылка
Можно воспользоваться регулярным выражением /1/g, чтобы найти все единицы и затем просто разделить одну длину ну другую:
statistic.match(/1/g).length / statistic.length
Либо пройтись в цикле по строке и посчитать:
var counter = 0;
for (var i=0; i < statistic.length; i++) {
if (statistic[i] == '1') counter = counter + 1;
}
var result = counter / statistic.length
Автор решения: user382492
→ Ссылка
Этот вариант прошел, собравши по крупицам инфу с нескольких форумов
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);
}
};
Автор решения: Helena Evangeline Falko
→ Ссылка
function getSuccessRate(statistic) {
if (!statistic) {
return 0;
} // создадим проверку, если строка пустая возвращаем ноль
/*посчитаем сколько единиц в нашей строке,
переберем все символы с помощью for of*/
/*если наш текущий символ 1,
то мы должны его посчитать, создадим счетчик count*/
let count = 0;
for (const char of statistic) {
if (char === '1') {
count++; // как только найдем 1 то увеличиваем count на единицу
}
}
/* теперь нужно посчитать сколько процентов,
для этого возвращаем округленное значение,
исп. Math.round(result) для округления до ближайшего целого*/
/* 1 - берем наше количество единичек(count),
2 - делим их на длину строки(statistic.length ) и умножаем на 100 */
return Math.round((count / statistic.length) * 100);
}
****************************
function getSuccessRate(statistic) {
if (!statistic) {
return 0;
}
let count = 0;
for (const char of statistic) {
if (char === '1') {
count++;
}
}
return Math.round((count / statistic.length) * 100);
}
console.log(getSuccessRate('001101'));