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