У меня есть функция, которая принимает массив массивов и два входных значения. Функция должна возвращать массив, содержащий всю эту информацию; однако, когда к третьему уровню массивов обращаются, он копирует значение «undefined» вместо фактического массива, который там находится.
Я также попытался передать копию массива вместо исходной ссылки, но возникает та же проблема.
function relation(list, x, y){
var x = [list, x, y];
return x;
}
Попытка с использованием функции копирования:
function copy(list){
var newList = [];
for (var i = 0; i < list.length; i++){
if (Array.isArray(list[i])){
newList[i] = list[i].slice();
}
else newList[i] = list[i];
}
return newList;
}
function relation(copy(list), x, y){
var x = [list, x, y];
return x;
}
Независимо от того, какая версия отношения () используется, вызывая функцию
var x = [0, [0, [0, 1, 2] ] ];
var y = relation(x, 5, 10);
console.log(y);
должно быть
[ [ 0, [ 0, [0, 1, 2] ] ], 5, 10]
Но на самом деле возвращает
[ [ 0, [ 0, [Array] ] ], 5, 10]
Аналогично, при попытке доступа к элементам в самом внутреннем массиве:
console.log(y[0][0][0]);
функция возвращает неопределенное значение.
Есть ли простой способ скопировать этот самый внутренний массив?