问题描述
使用new list等于一个list变量,更改任何一个list集合另一个list也会随着改变。
不止发生在js ,c#等语言中也存在这种情况。发生这种状况的原因是由于数据的copy问题。大多数都是指针指向了原数组的地址,所以代码表面看是俩,其实动的是一个。
解决
js ,c#可以通过类型转换来解决
//javascript
var list = [obj1,obj2,obj3,obj4];
var list2 = JSON.Parse(JSON.Stringify(list));
将对象转字符串再转Json对象
//c#
var list = new List(obj);
list.Add(obj1);
list.Add(obj2);
list.Add(obj3);
list.Add(obj4);
var list2 = new List<obj>(list.ToArray());
其他解决方式自行检索。