У меня есть сценарий, когда мне нужно скопировать массив объектов (Основной массив) в другой массив Temp, который не должен иметь ссылку на объект в основном, если я вношу какие-либо изменения в главный массив, который он не должен отражать в массиве Temp, так что я будет сохранять копию независимо.
Я использовал один из фрагментов кода из, который частично нравится, если я удаляю все объекты из массива Main, массив temp все еще удерживает значение, но когда я делаю некоторые изменения в основном массиве и нажмите кнопку отмены отмены iam все объекты из основного массива с использованием array.Removeall(); но модификация все еще существует в массиве Temp, поэтому это означает, что объект имеет ссылку.
clone: function (existingArray) {
var newObj = (existingArray instanceof Array) ? [] : {};
console.debug('newObj value is ' + newObj);
for (i in existingArray) {
console.debug('i value is' + i);
if (i == 'clone') continue;
console.debug('existingArray[i] value ' + existingArray[i]);
if (existingArray[i] && typeof existingArray[i] == "object") {
newObj[i] = this.clone(existingArray[i]);
} else {
console.debug('in else part ' + existingArray[i]);
newObj[i] = existingArray[i];
}
}
return newObj;
}
моя структура объекта похожа на
iam с использованием инфраструктуры нокаутов.
newObjectCreation = function (localIp, RemoteIp, areaId) {
this.localIP = ko.observable(localIp);
this.remoteIP = ko.observable(RemoteIp);
this.areaId = ko.observable(areaId);
};
template.ProtocolArray.push(new newObjectCreation('', '', '')); // to create default row
Пожалуйста, помогите мне в этом отношении. Спасибо заранее.