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]) পছন্দ করা হয় সাইড ইফেক্ট এড়াতে।