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किसी सरणी से अंतिम तत्व निकालता है, और उस तत्व को वापस करता है। यह ऑपरेशन सरणी की लंबाई को बदलता है।