Я пытаюсь создать функцию, которая принимает массив, содержащий вложенные массивы и число. Массив, который я использую в качестве параметра, представляет время, в которое разные ученики приходили в класс, каждый вложенный массив - это набор времен. Число представляет минимальное количество студентов, которые должны появиться, чтобы начать занятие. Значения внутри каждого вложенного массива - числа, эти числа должны быть либо 0, либо отрицательными. Если количество нулей и отрицательных значений равно количеству студентов, необходимых для начала класса, или больше, тогда функция должна преобразовать sh истинное логическое значение в массив, который функция будет возвращать позже. Если студентов недостаточно, он должен поместить sh ложное логическое значение в тот же массив. Итак, если у нас есть 3 вложенных массива, первый из которых содержит достаточное количество студентов, а два других - нет, возвращаемый результат должен быть [true, false, false]. Вот что я написал до сих пор:
function openings (arrayOfTimes, studentsRequired){
const openWhen = [];
for (let i = 0; i <= arrayOfTimes.length; i++){
var x = arrayOfTimes[i];
for (let j = 0; j <= x.length; j++){
let y = x[i];
let z = [];
if (y <= 0){
z.push(y);
}
let open = true;
if (z.length >= studentsRequired){
openWhen.push(open);
}
let notOpen = false;
if (z.length < studentsRequired){
openWhen.push(notOpen);
}
}
}
return openWhen;
}
console.log(openings([[1,2,0],[0,0,-1],[-2,-3,0]],2));
В выводе говорится, что "не удается прочитать длину свойства undefined", при просмотре журнала ошибок указывается, что неопределенное свойство - x.
Это мой первый time, используя оба вложенных массива и a для l oop внутри другого для l oop. Я ценю любое понимание и объяснение того, где я ошибся. Большое спасибо.