sen yaşamaya devam edip sorunu için data
den Nesne klonlamak kod verilerinde, değişkenlikle bir sorundur ve şablon aslında aynı nesne başvurusu ve bu nedenle değişir biri diğerini etkileyecektir. Değişkenlerinizi değiştirmemek için bir çaba sarfetmeli ve bunun yerine onlarla bir şey değiştirmeniz gerektiğinde yeni bir nesne döndürmelisiniz. Object.assign()
veya spread operatörünü kullanmak isteyeceksiniz. Başka bir sorun ise, kullandığınız delete
işlevinin JS'den nesne anahtarlarını silmenin doğru bir yolu olmadığından aslında oldukça yavaştır.
const jsonFunction = input => {
return {
...input,
candidates: null,
...input
}
};
const data = jsonFunction(template);
veya alternatif olarak bunları birbirlerine etkilemeden data
ve template
başa anlamına gelir Object.assign()
const jsonFunction = input => {
return Object.assign({}, input, candidates: null);
}
const data = jsonFunction(template);
Bu yeni bir nesne dönmek ve immutably hallediyorum tarafından, verilere atar ile
.
Nesnenin bir kopyasını oluşturmanız gerekir - buraya bir göz atın: http://stackoverflow.com/questions/728360/most-elegant-way-to-clone-a-javascript-object – somethinghere
Bkz. Javascript, referans veya geçiş-değer dili mi?] (Http://stackoverflow.com/questions/518000/is-javascript-a-pass-by-reference-or-pass-by-value-language) – Liam