কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে slice() এবং splice() মেথডের লো-লেভেল পার্থক্য

slice() এবং splice()-এর মৌলিক পার্থক্য:

  • splice(): অরিজিনাল অ্যারেটিকে মিউটেট (পরিবর্তন) করে এবং রিমুভ করা আইটেম(গুলো) নতুন অ্যারে হিসেবে রিটার্ন করে।
  • slice(): অরিজিনাল অ্যারে পরিবর্তন করে না এবং স্লাইস করা অংশ নতুন অ্যারে হিসেবে রিটার্ন করে।

উদাহরণ

// splice আসল অ্যারে পরিবর্তন করে
let arr = [1, 2, 3, 4, 5];
console.log(arr.splice(2)); // [3, 4, 5] (ইন্ডেক্স ২ থেকে শেষ পর্যন্ত রিমুভ)

// slice আসল অ্যারে পরিবর্তন করে না
let arr2 = [1, 2, 3, 4, 5];
console.log(arr2.slice(2)); // [3, 4, 5] (ইন্ডেক্স ২ থেকে শেষ পর্যন্ত কপি)

console.log("\nAfter changing the arrays");
console.log(arr);   // [1, 2] (splice-এর কারণে পরিবর্তিত)
console.log(arr2);  // [1, 2, 3, 4, 5] (slice অরিজিনালকে টাচ করলো না)

আউটপুট

[ 3, 4, 5 ] 
[ 3, 4, 5 ]

After Changing the arrays
[ 1, 2 ] 
[ 1, 2, 3, 4, 5 ]

সিনট্যাক্স তুলনা

// splice(start, deleteCount, ...itemsToAdd)
arr.splice(1, 2, 'a', 'b'); // ইন্ডেক্স ১ থেকে ২টি রিমুভ করে 'a','b' যোগ করবে

// slice(start, end) - end এক্সক্লুসিভ
arr.slice(1, 3); // ইন্ডেক্স ১, ২ রিটার্ন করবে (৩ এক্সক্লুসিভ)

ব্যবহার গাইড

  • splice: অ্যারে মডিফাই করতে (এড/রিমুভ/রিপ্লেস) - মিউটেটিভ
  • slice: অ্যারের অংশ কপি/এক্সট্রাক্ট করতে - পিউর (নন-মিউটেটিভ)

ফাংশনাল প্রোগ্রামিং-এ slice (বা স্প্রেড [...arr]) পছন্দ করা হয় সাইড ইফেক্ট এড়াতে।

  1. জাভা এবং জাভাস্ক্রিপ্টের পার্থক্য কী?

  2. জাভাস্ক্রিপ্ট এবং C++-এর পার্থক্য কী?

  3. জাভাস্ক্রিপ্টে == এবং === এর পার্থক্য কী?

  4. জাভাস্ক্রিপ্টে ফাংশন ও মেথডের পার্থক্য