Javascript передает массивы в функции по значению, оставляя исходный массив без изменений

Я прочитал здесь много ответов, касающихся «по значению» и «по ссылке», передаваемых для отправки массивов в функции JavaScript. Однако у меня возникла проблема с отправкой массива в функцию и оставлением исходного массива без изменений. Этот пример иллюстрирует проблему:

function myFunction(someArray)
{
// any function that makes an array based on a passed array;
// someArray has two dimensions;
// I've tried copying the passed array to a new array like this (I've also used 'someArray' directly in the code);

funcArray = new Array();
funcArray = someArray;

var i = 0;

    for(i=0; i<funcArray.length; i++)
    {
    funcArray[i].reverse;
    }

return funcArray;

}

Я не могу понять, почему что-то в этой функции должно изменить исходный массив.

вызов этой функции напрямую меняет исходный массив, если вызов функции назначен новому массиву:

myArray = [["A","B","C"],["D","E","F"],["G","H","I"]];
anotherArray = new Array();

anotherArray = myFunction(myArray);
// myArray gets modified!;

Я попытался использовать .valueOf () для отправки примитива:

anotherArray = myFunction(myArray.valueOf());
// myArray gets modified!;

Я даже пытался разбить массив на элемент за элементом и подэлемент за подэлементом и присвоить все новому 2-му массиву, а исходный массив все еще изменяется.

Я также соединил вложенные элементы в строку, обработал их, разделил их обратно на массивы, и исходный массив все еще изменяется.

Пожалуйста, кто-нибудь знает, как я могу передать значения массива в функцию и не изменить переданный массив?

Ответы на вопрос(7)

Ваш ответ на вопрос