Страницы

Поиск по вопросам

среда, 12 июня 2019 г.

Клонирование двухмерного массива [дубликат]

На данный вопрос уже ответили: Копирование объекта с последующим изменением [дубликат] 3 ответа Нужно сделать клон двухмерного массива, чтобы можно было в клоне менять значения так, чтобы они не менялись при этом в исходном. Как это сделать?
let arr = [[1,2,3], [1,2,3], [1,2,3]] let arr2 = Object.assign([], arr); arr2[0][0] = 22; console.log(arr2); console.log(arr);


Ответ

Вы уже почти всё сделали
let arr = [[1,2,3],[1,2,3],[1,2,3]] let arr2 = arr.map(el => Object.assign([],el)); arr2[0][0] = 22; console.log(arr2); console.log(arr);
Вот еще несколько вариантов, как это сделать
JSON
let arr = [[1,2,3],[1,2,3],[1,2,3]] let arr2 = JSON.parse(JSON.stringify(arr)); arr2[0][0] = 22; console.log(arr2[0][0], arr[0][0]);
Concat
let arr = [[1,2,3],[1,2,3],[1,2,3]] let arr2 = arr.map(el => [].concat(el)); arr2[0][0] = 22; console.log(arr2[0][0], arr[0][0]);
Slice
let arr = [[1,2,3],[1,2,3],[1,2,3]] let arr2 = arr.map(el => el.slice(0)); arr2[0][0] = 22; console.log(arr2[0][0], arr[0][0]);
Если надо быстро
arr2 = []; for(var i = 0; i

Комментариев нет:

Отправить комментарий