Я новичок в javascript и работаю над проектом, которому нужно взять массив чисел и подсчитать количество каждого типа чисел (положительные, отрицательные, нули), а затем вернуть счетчики в другом массиве. Пока что я попробовал следующий код:
let negatives = 0;
let zeros = 0;
let positives = 0;
function counter(numbersArray = [1, 2, 3, 4, 0, 0, 0, -1, -2]) {
var returnArray = [negatives, zeros, positives]
for (x = 0; x < numbersArray.length; x++) {
if (numbersArray[x] < 0) {
negatives++;
} else if (numbersArray[x] === 0) {
zeros++;
} else {
positives++;
}
}
return returnArray;
}
console.log(counter());
console.log(counter());
console.log(counter());
Код возвращает его после трехкратного вызова:
counter();
(3) [0, 0, 0]
counter();
(3) [2, 3, 4]
counter();
(3) [4, 6, 8]
Я настроил его так:
var numbersArray = [1, 2, 3, 4, 0, 0, 0, -1, -2];
function counter(numbersArray) {
var negatives = 0;
var zeros = 0;
var positives = 0;
var returnArray = [negatives, zeros, positives]
for (x = 0; x < numbersArray.length; x++) {
if (numbersArray[x] < 0) {
negatives++;
} else if (numbersArray[x] === 0) {
zeros++;
} else {
positives++;
}
}
return returnArray;
}
console.log(counter());
console.log(counter());
console.log(counter());
Но при вызове появляется следующая ошибка:
counter();
VM82:14 Uncaught TypeError: Cannot read property 'length' of undefined
at counter (<anonymous>:14:34)
at <anonymous>:1:1
Я понимаю, что это означает, что мой массив не определен, хотя я не понимаю, почему потому что я определяю это в первой строке. Буду признателен за любую помощь или направление.