выдает ошибку: ReferenceError: number is not defined
Пробую писать код, через цикл в цикле написал функцию для вывода первого элемента из каждого массива [1, 4, 7]. Но выдает ошибку: ReferenceError: number is not defined. Если number обернуть (зачем оборачивать в кавычки, если тип данных число, а не строка) в кавычки то ошибки нет, но и console.log(board.slice(i, 0)); тоже нет
let board = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
function enumeration (i, j) {
for(let i = 0; i < board.length; i++) {
for(let j = 0; j < board[i].length; j++) {
if (board.slice(i, 0) === number && board.slice(0, j) === number) {
console.log(board.slice(i, 0));
}
}
}
}
enumeration();
Ответы (1 шт):
Вы неправильно применяете проверку на тип.
Чтобы это сделать надо использовать оператор typeof, который, в свою очередь, будет возвращать наименование типа в строковом формате, например
console.log(typeof 42);
// expected output: "number"
console.log(typeof 'blubber');
// expected output: "string"
console.log(typeof true);
// expected output: "boolean"
console.log(typeof undeclaredVariable);
// expected output: "undefined"
(а вот сами Типы данных)
6 типов данных являющихся примитивами:
- Undefined (Неопределённый тип): typeof instance === "undefined"
- Boolean (Булев, Логический тип): typeof instance === "boolean"
- Number (Число): typeof instance === "number"
- String (Строка): typeof instance === "string"
- BigInt: typeof instance === "bigint"
- Symbol (в ECMAScript 6): typeof instance === "symbol"
Как следствие, вам, чтобы проверить на то, что этот тип является численным надо писать так:
if (typeof board.slice(i, 0) === 'number' && typeof board.slice(0, j) === 'number')
Ну а в текущем виде вы просто пытаетесь сравнить число с какой-то переменной по имени number, которой не существует в текущем коде