gpt4 book ai didi

javascript - 旧 JSON 值已更改

转载 作者:行者123 更新时间:2023-11-28 15:13:44 30 4
gpt4 key购买 nike

当将 columnsData 值分配给 columns 时,我有两个 JSON 对象 columnsDatacolumns,这两个值都会更改。

var columnsData = [
{id: "id"},
{id: "root_task_assignee"},
{id: "root_task_id"},
{id: "root_task_status"},
{id: "root_task_tracker"},
{id: "rt_category"},
{id: "rt_priority"},
{id: "rt_subject"},
]
var columns = [];

使用下面的函数,我将 columnsData 值分配给 columns 对象,并且还添加了一些附加字段

for(i = 0;i < columnsData.length; i++){
columns[i] = columnsData[i];
columns[i]["name"] = columnsData[i]["name"] || columnsData[i]["id"];
columns[i]["type"] = columnsData[i]["id"]["type"] || "string";
}

但分配后两者具有相同的值。旧的 JSON columnsData 值如何更改?还有其他方法来赋值吗

最佳答案

columns[i] = columnsData[i] 不会复制数据,而是对相同数据进行额外引用。

例如,假设您给 Random Jones 先生起了一个昵称“Cozy”。如果你给 Cosy 一个信封让他拿着,如果 Jones 先生现在也拿着一个信封,你会感到惊讶吗?

这里也是同样的事情。如果更改 columns[i],您也会更改 columnsData[i],因为它们是同一个对象。

如果你想让它们不同,你就必须克隆它。在这种情况下,您只需使用 id 创建一个新对象:

columns[i] = { id: columnsData[i].id };

一般来说,您最好找到一个不错的克隆函数。

关于javascript - 旧 JSON 值已更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35077557/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com