Ну вообще, у тебя во второй раз зачем-то используется два цикла... это приводит к тому, что итерируется не только первый уровень, но и второй, что здесь ни к чему.
Тебе нужно просто создать переменную буфер равную 0 и на каждой итерации по родительскому массиву прибавлять +1... эта переменная будет индексом при удалении или замене элементов по диагонали. Что-то вроде такого, если я правильно понял.
const rand = () => Math.floor(Math.random() * (99 - 1 + 1) + 1);
let count = +prompt('Введите количество чисел:');
let matrix = [];
let index = 0;
for (let a = 0; a < count; a++) {
for (let b = 0; b < count; b++) {
if (matrix[a]) matrix[a].push(rand());
else matrix.push([rand()]);
}
}
for (let k of matrix) {
delete k[index];
index += 1;
}
console.log(matrix);
Мне нужно сгенерировать массив в котором будут еще массивы а в них рандомные числа количество которых должно быть ровно количеству массивов в главном массиве (что то в роде матрицы) количество чисел и массивов даем с помощью prompt а после чего отобразить этот массив в консоли, потом сделать дубликат этого массива и в дубликате стереть числа по обоим диагоналям и так же отобразить в консоли проблема в том что первый массив отображается не корректно (точнее при выполнении второй части стираются диагонали не у второго массива а у обоих)
пожалуйста помогите понять почему так получается