Постановка проблемы:
Учитывая массив целых чисел, вычислите отношения его элементов, которые являются положительными, отрицательными и нулевыми. Выведите десятичное значение каждой дроби в новой строке с 6 знаками после запятой.
Решение:
шаг 1: объявить нашу функцию
function plusMinus(arr) { }
Шаг 2: объявите переменную (элементы), которая содержит общее количество элементов в массиве.
function plusMinus(arr) { const elements = arr.length; }
шаг 3: объявите переменную итератора, она содержит ключи массива, над которым мы выполняем операцию.
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); }
шаг 4: мы объявляем 3 массива, которые содержат отрицательные значения, положительные значения и нулевые значения.
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; }
шаг 5: мы проходим по массиву, используя итератор для проверки каждого значения, определяем, является ли каждое значение положительным, отрицательным или нулевым, и помещаем их в соответствующие категории (positiveEle, , или нольЭле)
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; for (const key of iterator) { if (arr[key] > 0) { positiveEle.push(arr[key]); } if (arr[key] < 0) { negativeEle.push(arr[key]); } if (arr[key] === 0) { zeroEle.push(arr[key]); } } }
шаг 6: мы определяем общее количество положительных, отрицательных и нулевых элементов, проверяя длины positiveEle, отрицательных и zeroEle соответственно
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; for (const key of iterator) { if (arr[key] > 0) { positiveEle.push(arr[key]); } if (arr[key] < 0) { negativeEle.push(arr[key]); } if (arr[key] === 0) { zeroEle.push(arr[key]); } } const TotalPositiveEle = positiveEle.length; const TotalNegativeEle = negativeEle.length; const TotalZeroEle = zeroEle.length; }
шаг 7: мы вычисляем отношения положительных, отрицательных и нулевых элементов, разделяя каждый из (TotalPositiveEle, TotalNegativeEle, TotalZeroEle) на элементы
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; for (const key of iterator) { if (arr[key] > 0) { positiveEle.push(arr[key]); } if (arr[key] < 0) { negativeEle.push(arr[key]); } if (arr[key] === 0) { zeroEle.push(arr[key]); } } const TotalPositiveEle = positiveEle.length; const TotalNegativeEle = negativeEle.length; const TotalZeroEle = zeroEle.length; const ratioPositiveEle = TotalPositiveEle / elements; const ratioNegativeEle = TotalNegativeEle / elements; const ratioZeroEle = TotalZeroEle / elements; }
шаг 8: преобразовать отношения в 6 знаков после запятой с помощью метода «.toFixed()».
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; for (const key of iterator) { if (arr[key] > 0) { positiveEle.push(arr[key]); } if (arr[key] < 0) { negativeEle.push(arr[key]); } if (arr[key] === 0) { zeroEle.push(arr[key]); } } const TotalPositiveEle = positiveEle.length; const TotalNegativeEle = negativeEle.length; const TotalZeroEle = zeroEle.length; const ratioPositiveEle = TotalPositiveEle / elements; const ratioNegativeEle = TotalNegativeEle / elements; const ratioZeroEle = TotalZeroEle / elements; console.log(ratioPositiveEle.toFixed(6)); console.log(ratioNegativeEle.toFixed(6)); console.log(ratioZeroEle.toFixed(6)); }
шаг 9: проверка на соответствие тестовым примерам в hackerrank
function plusMinus(arr) { const elements = arr.length; const iterator = arr.keys(); let positiveEle = []; let negativeEle = []; let zeroEle = []; for (const key of iterator) { if (arr[key] > 0) { positiveEle.push(arr[key]); } if (arr[key] < 0) { negativeEle.push(arr[key]); } if (arr[key] === 0) { zeroEle.push(arr[key]); } } const TotalPositiveEle = positiveEle.length; const TotalNegativeEle = negativeEle.length; const TotalZeroEle = zeroEle.length; const ratioPositiveEle = TotalPositiveEle / elements; const ratioNegativeEle = TotalNegativeEle / elements; const ratioZeroEle = TotalZeroEle / elements; console.log(ratioPositiveEle.toFixed(6)); console.log(ratioNegativeEle.toFixed(6)); console.log(ratioZeroEle.toFixed(6)); return [ ratioPositiveEle.toFixed(6), ratioNegativeEle.toFixed(6), ratioZeroEle.toFixed(6), ]; }