На данный вопрос уже ответили:
Копирование объекта с последующим изменением [дубликат]
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
Комментариев нет:
Отправить комментарий