javascript - 如何从 JSON 编辑新添加的列表?
问题描述
我需要从 JSON 中克隆数据一个数组的键,然后编辑新添加的键。
这是我使用的完整代码:
var test_arr = [{'name' : 'data','item':'data2'},{'name' : 'helw','item':'data3'}];
var test_arr1 = test_arr[1];
test_arr.push(test_arr1);
index = 2;
var datas = test_arr[index];
datas.name = 'janjan';
console.log(test_arr);
从上面的代码中,我复制了 test_arr[1] 并将其推送到 test_arr 中,创建了一个新索引,
我成功地在 test_arr (test_arr[2]) 上添加了一个新索引,但是当我编辑 test_arr[2] 时,它也会编辑 test_arr[1]。
[
{ name: 'data', var2: 'data2' },
{ name: 'janjan', var3: 'data3' },
{ name: 'janjan', var3: 'data3' }
]
有没有办法只编辑 test_arr[2] ?
解决方案
实际上你正在做对象的浅拷贝。这就是为什么它会改变你用来复制的对象的值。
您需要考虑 JSON 对象的深层副本,您只需要修改第二行
var test_arr = [{'name' : 'data','item':'data2'},{'name' : 'helw','item':'data3'}];
var test_arr1 = JSON.parse(JSON.stringify(test_arr[1]));
test_arr.push(test_arr1);
index = 2;
var datas = test_arr[index];
datas.name = 'janjan';
console.log(test_arr);
推荐阅读
- python - 无法从“transformers.models.t5”导入名称“T5Tokenizer”
- javascript - 如何将值从服务传递到父组件
- json - 如何在特定条件下从 json 字典中删除整个元素(索引)
- python - 语法错误 || 不和谐.py || 第 18 行代码
- sorting - 根据特定字符串删除重复行
- batch-file - 通过 windows 命令行调用 gnome-session
- flutter - 无法使用 source_gen 为子包生成源
- reactjs - 如何设置 MenuItem 在里面
- html5-canvas - 使用画布调整图像尺寸并旋转 90 度
- python - 具有垂直边框和特定列颜色的 plotly 列