Добрый день! Возник вопрос с функцией, которая должна принимать на вход матрицу 3*3, и возвращать матрицу, из которой удалены i-я строка и j-й столбец. Разумеется, исходная матрица изменяться не должна.
Матрица задана как массив такого рода:
A=[[11,12,13],
[21,22,23],
[31,32,33]]
Написал такую функцию:
function delete_from_matrix (matrix, string_number, column_number) {
matrix.splice(string_number,1);
for (i = 0; i < 2; i++){
matrix[i].splice(column_number, 1);
};
return matrix;
};
Однако при вызове функции выясняется, что она изменяет сам массив А. Т.е. при записи:
Temp = delete_from_matrix (A, 0, 1);
получается, что матрица А изменяется: до вызова A.length = 3, после вызова A.length = 2.
Насколько я понимаю, такого быть не должно, так как читал, что при вызове функции ведётся работа с копиями переданных параметров. Однако же это происходит :( Подскажите, пожалуйста, в чём ошибка?
При этом даже если ввести новый параметр Temp и внутри функции написать, что Temp = A, то изменение А происходит всё равно.