में किसी अन्य सरणी में ऑब्जेक्ट्स की सरणी की प्रतिलिपि बनाना स्लाइस (0) और concat() का उपयोग करके जावास्क्रिप्ट में किसी अन्य सरणी में ऑब्जेक्ट्स की सरणी की प्रतिलिपि बनाना काम नहीं करता है।जावास्क्रिप्ट (डीप कॉपी)
मैंने परीक्षण करने के लिए निम्नलिखित प्रयास किए हैं यदि मुझे इसका उपयोग करके गहरी प्रतिलिपि के अपेक्षित व्यवहार मिलते हैं। लेकिन कॉपी किए गए सरणी में परिवर्तन करने के बाद मूल सरणी भी संशोधित हो रही है।
var tags = [];
for(var i=0; i<3; i++) {
tags.push({
sortOrder: i,
type: 'miss'
})
}
for(var tag in tags) {
if(tags[tag].sortOrder == 1) {
tags[tag].type = 'done'
}
}
console.dir(tags)
var copy = tags.slice(0)
console.dir(copy)
copy[0].type = 'test'
console.dir(tags)
var another = tags.concat()
another[0].type = 'miss'
console.dir(tags)
कैसे मैं दूसरे में एक सरणी की एक गहरी प्रतिलिपि कर सकते हैं, ताकि मूल सरणी अगर मैं प्रति सरणी में परिवर्तन करने के संशोधित नहीं है।
मुझे यकीन है कि तुम क्या करने की कोशिश कर रहा है, लेकिन कर रहे हैं नहीं कर रहा हूँ सही कोड angular.copy पाया। मैं सुझाव देता हूं कि लूप के लिए अपना दूसरा लूप 'टैग के विभिन्न टैग) के लिए बदलना {{टैग)।sortOrder == 1) { tag.type == 'done' }} ' –
आपके पर्यावरण के आधार पर, आप ऑब्जेक्ट.क्रेट का प्रयास कर सकते हैं? – Zlatko
@zlatko क्या आप उसी – jsbisht