Массив таблицы умножения
Всем привет Нужна помощь. Создал я два массива, чтобы выводились они как таблица умножения. Как мне обратиться, к примеру ко второму эл. в строке и второму эл. в столбце, и получить пересечение элементов - то есть 4. если 5 и 5 - то 25.
let arr = "";
for (let i = 1; i < 10; i++) {
for (let j = 1; j < 10; j++) {
arr += j * i + " ";
if (j >= 9) {
arr += ' \n';
}
}
}
console.log(arr)
Ну или скорей всего, я не так делаю.
Ответы (1 шт):
Как мне обратиться, к примеру ко второму эл. в строке и второму эл. в столбце, и получить пересечение элементов - то есть 4
Если хранить таблицу умножния в виде строки, как у Вас, нам будет очень сложно и неефективно достать число из неё. Другое дело хранить все числа в двумерном массиве, в примерном формате:
[
[0, 0, 0, 0]
[0, 1, 2, 3]
[0, 2, 4, 6]
[0, 3, 6, 9]
]
Зачем нам хранить числа, которые начинаются с нуля? Все просто, чтобы потом было удобнее брать их произведение, пример: arr[5][5] будет 25.
// Создаем
let arr = Array(10);
for (let i = 1; i < 10; i++) {
arr[i] = [...Array(10)].map((_, j) => i * j);
}
console.log(arr)
// Делаем таблицу текстом
let s = '';
for (let i = 1; i < 10; i++) {
s += arr[i].slice(1).join(' ') + '\n';
}
console.log(s); // Вся таблица
console.log(arr[5][5]); // 25