Постановка проблемы:

Учитывая массив целых чисел, вычислите отношения его элементов, которые являются положительными, отрицательными и нулевыми. Выведите десятичное значение каждой дроби в новой строке с 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),
   ];
}