将columnsData
值分配给columns
时,我有两个JSON对象columnsData
和columns
,两个值都被更改。
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值如何更改?还有其他分配值的方法吗
最佳答案
如果需要保持原始数组纯净(不变),则应使用array的map方法。
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.map(function(obj){
var rObj = {};
rObj[obj.key] = obj.value;
rObj["name"] = obj.value;
.....
return rObj;
});
可以在map方法中添加逻辑以根据需要创建新数组。希望能帮助到你。