Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2020, 16:45
Интересующийся
Отправить личное сообщение для AlexRow Посмотреть профиль Найти все сообщения от AlexRow
 
Регистрация: 12.04.2020
Сообщений: 19

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

function getSuccessRate(statistic){
      
      return statistic.length
    }
    console.log(getSuccessRate('001101'))
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2020, 17:00
Аватар для Paguo-86PK
Профессор
Отправить личное сообщение для Paguo-86PK Посмотреть профиль Найти все сообщения от Paguo-86PK
 
Регистрация: 16.09.2009
Сообщений: 253

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

Последний раз редактировалось Paguo-86PK, 24.04.2020 в 18:34. Причина: length маловато…
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2020, 17:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Paguo-86PK,
length маловато
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2020, 18:35
Интересующийся
Отправить личное сообщение для AlexRow Посмотреть профиль Найти все сообщения от AlexRow
 
Регистрация: 12.04.2020
Сообщений: 19

Собраши инфу с нескольких форумов, сработал вариант
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);
  }
};
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2020, 20:02
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

let getSuccessRate = (statistic) => [].reduce.call(statistic, (a, c) => a+= (c==='1'), 0) / statistic.length
Ответить с цитированием
  #6 (permalink)  
Старый 24.04.2020, 21:05
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

еще вариант

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

console.log(getSuccessRate('001101'))
Ответить с цитированием
  #7 (permalink)  
Старый 24.04.2020, 21:13
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070


let getSuccessRate = (statistic, patern) => `${100 * [...statistic].reduce((a, c) => a+= (c === patern) , 0) / statistic.length | 0}%`;
console.log(getSuccessRate('001101', '1'))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по replace. Как заменить все точки в строке? Pluto Общие вопросы Javascript 14 21.04.2017 12:32
Как изменить адрес в адресной строке браузера? xqx Events/DOM/Window 2 24.04.2010 17:46
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08
как вызвать функцию название которой находиться в строке dark Общие вопросы Javascript 3 14.10.2009 13:02
Как присвоить текст строке состояния для всех браузеров? Tend Общие вопросы Javascript 4 14.05.2009 16:38