Podczas kopiowania tablicy w JavaScript do innej tablicy:
var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d'); //Now, arr1 = ['a','b','c','d']
Uświadomiłem sobie, że arr2 odnosi się do tej samej tablicy co arr1, a nie do nowej, niezależnej tablicy. Jak mogę skopiować tablicę, aby uzyskać dwie niezależne tablice?
1 odpowiedź
Użyj:
var newArray = oldArray.slice();
Zasadniczo operacja slice () klonuje tablicę i zwraca odwołanie do nowej tablicy.
Pamiętaj również, że w przypadku odniesień, ciągów i liczb (a nie rzeczywistego obiektu), slice () kopiuje odwołania do obiektu do nowej tablicy. Zarówno oryginalna, jak i nowa tablica odnoszą się do tego samego obiektu. Jeśli obiekt odniesienia się zmieni, zmiany będą widoczne zarówno dla nowych, jak i oryginalnych tablic.