http.getData().then(function(data) {
//填充数据
self._allCheckData = data;
self._checkedData = data;
})
在后面会改变其中某一个checkData,然后两个值便一起改了,应该怎么解决呢?
http.getData().then(function(data) {
//填充数据
self._allCheckData = data;
self._checkedData = data;
})
在后面会改变其中某一个checkData,然后两个值便一起改了,应该怎么解决呢?
使用Object.assign
MDN
http.getData().then(function(data) {
//填充数据
self._allCheckData = data;
self._checkedData = Object.assign({}, data); // 要加一些合法性判断
})
同熊丸子
你可以这样
var clone = function(o) {
var r = {};
for (var p in o) {
if (o.hasOwnProperty(p)) {
if(typeof o[p] == 'object'){
r[p] = clone(o[p]);
} else {
r[p] = o[p];
}
}
}
return r;
};
var a = clone(data);
10 回答11.2k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
可能是指向了同一个对象,你后续的操作其实操作的是同一个指向。
解决方法,可以克隆一份data给另外个属性。