javascript - 将数组值复制到多个数组
问题描述
我坚持使用 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()
。它没有用。请帮我解决这个问题。
解决方案
您想要做的是 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}]]
推荐阅读
- php - 关于“IF”语句,“if”是一个函数吗?
- c - 如何将类型 char a[] 分配给 unsigned char b[]?
- python - 使用 itertools 库获取对象组合?
- c# - 为什么我的 if 语句在我的 switch 语句中不起作用?
- javascript - 如何使用猫鼬更新另一个对象内的数组内的对象
- javascript - vue-cli devServer 代理绕过
- sql - 按日期滚动求和的窗函数
- python - 评估字符串差异
- azure - 使用用户分配的托管标识连接到 Azure Databricks
- html - 使用 node-fetch 将 API 数据发布到 ejs