我试图将特定JSON的内容复制到另一个JSON并根据我的需要修改临时变量,但原始的JSON也会发生变化。
例如:
>>>df = pd.DataFrame({"a" : [1,2,3], "b" :[4,5,6], "c":[10,11,12]})
>>>print(df)
a b c
0 1 4 10
1 2 5 11
2 3 6 12
>>>df2 = df.melt()
>>>print(df2)
variable value
0 a 1
1 a 2
2 a 3
3 b 4
4 b 5
5 b 6
6 c 10
7 c 11
8 c 12
说,现在我正在修改temp,比如:
count = {
passed : 2,
failed : 5
}
console.log(count) // logs the JSON content
let temp = count;
console.log(temp) // logs the JSON content
它也改变了计数的传递值。现在,如果我记录计数的JSON,
temp.passed = 0;
console.log(temp); //{passed : 0, failed : 5}
我希望传递的是2,因为我只修改了传入临时的JSON对象。
我想保持计数相同并仅修改temp。有人可以帮助我吗?
答案 0 :(得分:1)
首先,that is not JSON, that is an "object literal"。它们是不同的东西。
您需要克隆对象,例如使用destructuring assignment:
count = {
passed: 2,
failed: 5
}
const temp = { ...count };
temp.passed = 0;
console.dir(temp);
console.dir(count);
或者使用Object.assign()
和空对象,由Kenry提出。
答案 1 :(得分:1)
您必须克隆对象以添加更多属性,并且不要更改源。
使用Object.assign()
let temp = Object.assign({}, count);
通过这种方式,您可以在不更改源的情况下添加更多属性。