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
জাভাস্ক্রিপ্টে সি এবং সি ++ এর কীওয়ার্ডের সাথে আলাদা ফাংশন রয়েছে: এটি সরাসরি মেমরি মুক্ত করে না। পরিবর্তে, এর একমাত্র উদ্দেশ্য বস্তুগুলি থেকে বৈশিষ্ট্যগুলি সরিয়ে ফেলা।
অ্যারেগুলির জন্য, সূচকের সাথে সম্পর্কিত সম্পত্তি মুছে ফেলার ফলে একটি বিচ্ছিন্ন অ্যারে তৈরি হয় (যেমন এটিতে "গর্ত" সহ একটি অ্যারে)। বেশিরভাগ ব্রাউজারগুলি এই ফাঁকা অ্যারে সূচকগুলিকে "খালি" হিসাবে উপস্থাপন করে।
var array = [0, 1, 2, 3]
delete array[2] // [0, 1, empty, 3]
লক্ষ্য করুন delete
নূতন স্থান নির্দেশ করে না array[3]
বা array[2]
।
জাভাস্ক্রিপ্টে বিভিন্ন অন্তর্নির্মিত ফাংশন স্পার্স অ্যারে আলাদাভাবে হ্যান্ডেল করে।
for...in
খালি সূচি সম্পূর্ণরূপে এড়িয়ে যাবে।
একটি at তিহ্যগত for
লুপ undefined
সূচকের মানটির জন্য ফিরে আসবে ।
যে কোনও পদ্ধতি ব্যবহার করে সূচকের মানটির জন্য Symbol.iterator
ফিরে আসবে undefined
।
forEach
, map
এবং reduce
কেবল অনুপস্থিত সূচকটি এড়িয়ে যাবে।
সুতরাং, delete
একটি অ্যারে থেকে উপাদানগুলি সরানোর সাধারণ ব্যবহারের ক্ষেত্রে অপারেটরটি ব্যবহার করা উচিত নয়। অ্যারেগুলির উপাদানগুলি অপসারণ এবং মেমরিটি পুনঃনির্ধারণের জন্য একটি উত্সর্গীকৃত পদ্ধতি রয়েছে: Array#splice()
এবং Array#pop
।
অ্যারে # স্প্লাইস (শুরু করুন [, ডিলিটকাউন্ট [, আইটেম 1 [, আইটেম 2 [, ...]]]])
Array#splice
অ্যারেটি রূপান্তরিত করে এবং কোনও সরানো সূচকগুলি ফেরত দেয়। deleteCount
উপাদান সূচক থেকে সরিয়ে ফেলা হয় start
, এবং item1, item2... itemN
সূচি থেকে অ্যারের মধ্যে প্রবেশ করানো হয় start
। যদি deleteCount
বাদ দেওয়া হয় তবে আরম্ভের সূচনা থেকে সূচিপত্র থেকে উপাদানগুলি সরানো হবে।
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
একটি অ্যারের থেকে শেষ উপাদানটি সরিয়ে দেয় এবং সেই উপাদানটি ফেরত দেয়। এই অপারেশন অ্যারের দৈর্ঘ্য পরিবর্তন করে।