delete
ऑपरेटर वस्तुओं से गुण दूर करने के लिए प्रयोग किया जाता है।
const obj = { foo: "bar" }
delete obj.foo
obj.hasOwnProperty("foo") // false
ध्यान दें कि, सरणियों के लिए, यह एक तत्व को हटाने के समान नहीं है । किसी तत्व को किसी सरणी से निकालने के लिए, उपयोग करें Array#splice
या Array#pop
। उदाहरण के लिए:
arr // [0, 1, 2, 3, 4]
arr.splice(3,1); // 3
arr // [0, 1, 2, 4]
विवरण
delete
जावास्क्रिप्ट में C और C ++ में कीवर्ड के लिए एक अलग फ़ंक्शन है: यह सीधे मुक्त मेमोरी नहीं करता है। इसके बजाय, इसका एकमात्र उद्देश्य वस्तुओं से गुणों को निकालना है।
सरणियों के लिए, एक इंडेक्स के अनुरूप एक संपत्ति को हटाने, एक विरल सरणी बनाता है (यानी इसमें "छेद" के साथ एक सरणी)। अधिकांश ब्राउज़र इन लापता सरणी सूचकांकों को "खाली" के रूप में दर्शाते हैं।
var array = [0, 1, 2, 3]
delete array[2] // [0, 1, empty, 3]
ध्यान दें कि में delete
स्थानांतरित नहीं array[3]
है array[2]
।
जावास्क्रिप्ट में अलग-अलग अंतर्निहित फ़ंक्शन अलग-अलग तरीके से संभालते हैं।
for...in
खाली इंडेक्स को पूरी तरह से छोड़ देगा।
एक पारंपरिक for
लूप undefined
सूचकांक में मूल्य के लिए वापस आ जाएगा ।
इंडेक्स में मान के लिए किसी भी विधि का उपयोग किया Symbol.iterator
जाएगा undefined
।
forEach
, map
और reduce
बस लापता सूचकांक को छोड़ देगा।
इसलिए, delete
ऑपरेटर को किसी सरणी से तत्वों को हटाने के सामान्य उपयोग-मामले के लिए उपयोग नहीं किया जाना चाहिए। तत्वों को हटाने और स्मृति को पुनः प्राप्त करने के लिए Arrays के पास एक समर्पित तरीका है: Array#splice()
और Array#pop
।
ऐरे # ब्याह (प्रारंभ [, DeleteCount [, item1 [, item2 [, ...]]]]]
Array#splice
सरणी को बदल देता है, और किसी भी हटाए गए सूचकांकों को लौटाता है। deleteCount
तत्वों को इंडेक्स से हटा दिया जाता है start
, और item1, item2... itemN
इंडेक्स से सरणी में डाला जाता है start
। यदि deleteCount
छोड़ दिया जाता है तो startIndex से तत्वों को सरणी के अंत तक हटा दिया जाता है।
let a = [0,1,2,3,4]
a.splice(2,2) // returns the removed elements [2,3]
// ...and `a` is now [0,1,4]
वहाँ भी पर एक समान नाम है, लेकिन अलग, समारोह है Array.prototype
: Array#slice
।
एरे # स्लाइस ([शुरू, अंत]])
Array#slice
गैर-विनाशकारी है, और संकेतित सूचकांकों से start
लेकर एक नया सरणी देता है end
। यदि end
अनिर्दिष्ट छोड़ दिया जाता है, तो यह सरणी के अंत में चूक कर देता है। यदि end
सकारात्मक है, तो यह शून्य-आधारित गैर-समावेशी सूचकांक को रोकने के लिए निर्दिष्ट करता है। यदि end
यह नकारात्मक है, तो यह सरणी के अंत से वापस गिनती करके सूचकांक को रोकने के लिए निर्दिष्ट करता है (जैसे -1 अंतिम सूचकांक को छोड़ देगा)। यदि end <= start
, परिणाम एक खाली सरणी है।
let a = [0,1,2,3,4]
let slices = [
a.slice(0,2),
a.slice(2,2),
a.slice(2,3),
a.slice(2,5) ]
// a [0,1,2,3,4]
// slices[0] [0 1]- - -
// slices[1] - - - - -
// slices[2] - -[3]- -
// slices[3] - -[2 4 5]
सरणी # पॉप
Array#pop
किसी सरणी से अंतिम तत्व निकालता है, और उस तत्व को वापस करता है। यह ऑपरेशन सरणी की लंबाई को बदलता है।