Скопировать массив по значению - PullRequest
1575 голосов
/ 20 сентября 2011

При копировании массива в JavaScript в другой массив:

var arr1 = ['a','b','c'];
var arr2 = arr1;
arr2.push('d');  //Now, arr1 = ['a','b','c','d']

Я понял, что arr2 относится к тому же массиву, что и arr1, а не к новому независимому массиву. Как я могу скопировать массив, чтобы получить два независимых массива?

Ответы [ 33 ]

0 голосов
/ 25 марта 2019

Я бы лично предпочел такой способ:

JSON.parse(JSON.stringify( originalObject ));
0 голосов
/ 02 февраля 2019

Просто пишу:

arr2 = arr1.concat();

Вы генерируете новый новый массив с копией первого. Помните, что это функциональный способ вставить элемент в массив.

Если ваш код основан на ES6, вы также можете использовать оператор распространения:

arr2 = [...arr1];
0 голосов
/ 04 мая 2018

Для массива ES6, содержащего объекты

cloneArray(arr) {
    return arr.map(x => ({ ...x }));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...