首页 > 解决方案 > 将数组值复制到多个数组

问题描述

我坚持使用 JavaScript 数组的基础知识。这是我的代码

let arr = ['students', 'exams', [{'sub1':80, 'sub2':60},{'grade_sub1':'A', 'grade_sub2':'B'}]];
let new_arr = [];

new_arr = new_arr.concat(arr);
console.log(new_arr); //output : ['students', 'exams', [{'sub1':80, 'sub2':60},{'grade_sub1':'A', 'grade_sub2':'B'}]]

new_arr[2].pop();
let sub_arr = [];
sub_arr = sub_arr.concat(arr);

console.log(sub_arr); //output: ['students', 'exams',[{'sub1':80, 'sub2':60}]]

sub_arr 的预期输出是['students', 'exams', [{'sub1':80, 'sub2':60},{'grade_sub1':'A', 'grade_sub2':'B'}]]

我也试过使用slice()。它没有用。请帮我解决这个问题。

标签: javascriptarraysjson

解决方案


您想要做的是 deep clone.JSON.parse 然后 JSON.stringify 将为此工作。

let arr = ['students', 'exams', [{'sub1':80, 'sub2':60},{'grade_sub1':'A', 'grade_sub2':'B'}]];
let new_arr = [];

new_arr = JSON.parse(JSON.stringify(arr));
console.log(new_arr); //output : ['students', 'exams', [{'sub1':80, 'sub2':60},{'grade_sub1':'A', 'grade_sub2':'B'}]]

new_arr[2].pop();
let sub_arr = [];
sub_arr = sub_arr.concat(arr);

console.log(sub_arr); //output: ['students', 'exams',[{'sub1':80, 'sub2':60}]]


推荐阅读