এই থ্রেডটিতে ইতিমধ্যে প্রচুর দুর্দান্ত উত্তর রয়েছে। তবে আমি যখন ES5 প্রসঙ্গে "অ্যারে থেকে nth উপাদান সরান" সমাধান করার চেষ্টা করেছি তখন আমার অভিজ্ঞতাটি ভাগ করে নিতে চেয়েছিলাম।
জাভাস্ক্রিপ্ট অ্যারেগুলির শুরু বা শেষ থেকে উপাদানগুলি যুক্ত / সরানোর জন্য বিভিন্ন পদ্ধতি রয়েছে। এইগুলো:
arr.push(ele) - To add element(s) at the end of the array
arr.unshift(ele) - To add element(s) at the beginning of the array
arr.pop() - To remove last element from the array
arr.shift() - To remove first element from the array
মূলত উপরের পদ্ধতির কোনওটি অ্যারে থেকে নবম উপাদান সরানোর জন্য সরাসরি ব্যবহার করা যাবে না।
একটি বিষয় লক্ষণীয় যে এটি জাভা পুনরুক্তি ব্যবহারকারীর বিপরীতে যা পুনরাবৃত্তি করার সময় কোনও সংগ্রহের জন্য নবম উপাদানটি সরিয়ে ফেলা সম্ভব using
এটি মূলত আমাদের Array.splice
নবম উপাদানটি অপসারণের জন্য কেবল একটি অ্যারে পদ্ধতিতে ছেড়ে যায় (এই পদ্ধতিগুলির সাথে আপনি আরও কিছু করতে পারেন তবে এই প্রশ্নের প্রসঙ্গে আমি উপাদানগুলি অপসারণের দিকে মনোনিবেশ করছি):
Array.splice(index,1) - removes the element at the index
মূল উত্তরটি (মন্তব্য সহ) থেকে অনুলিপি করা কোডটি এখানে:
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter else it would run into IndexOutBounds exception
{
if (arr[i] === "four" || arr[i] === "two") {
//splice modifies the original array
arr.splice(i, 1); //never runs into IndexOutBounds exception
console.log("Element removed. arr: ");
} else {
console.log("Element not removed. arr: ");
}
console.log(arr);
}
আরেকটি লক্ষণীয় পদ্ধতি হ'ল Array.slice
। তবে এই পদ্ধতির রিটার্ন টাইপ হ'ল সরানো উপাদান। এছাড়াও এটি মূল অ্যারে সংশোধন করে না। পরিবর্তিত কোড স্নিপেট নিম্নলিখিত হিসাবে:
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter
{
if (arr[i] === "four" || arr[i] === "two") {
console.log("Element removed. arr: ");
console.log(arr.slice(i, i + 1));
console.log("Original array: ");
console.log(arr);
}
}
এটি বলার পরে, আমরা এখনও Array.slice
নীচের মতো প্রদর্শিত নবম উপাদানটি সরাতে ব্যবহার করতে পারি । তবে এটি অনেক বেশি কোড (অতএব অদক্ষ)
var arr = ["one", "two", "three", "four"];
var i = arr.length; //initialize counter to array length
while (i--) //decrement counter
{
if (arr[i] === "four" || arr[i] === "two") {
console.log("Array after removal of ith element: ");
arr = arr.slice(0, i).concat(arr.slice(i + 1));
console.log(arr);
}
}
Array.slice
পদ্ধতি a la redux কার্মিক প্রোগ্রামিং অপরিবর্তনীয়তা অর্জনে অত্যন্ত গুরুত্বপূর্ণ