যেমনটি আমরা জাভাস্ক্রিপ্টে জানি অ্যারে এবং অবজেক্টগুলি রেফারেন্সের সাথে রয়েছে, তবে আমরা কীভাবে উপায়গুলি পরে মূল অ্যারেটি পরিবর্তন না করে কপি করতে পারি?
এটি করার কয়েকটি উপায় এখানে রয়েছে:
আপনার কোডে আমাদের এই অ্যারে রয়েছে তা কল্পনা করুন:
var arr = [1, 2, 3, 4, 5];
1) একটি ফাংশনে অ্যারের মাধ্যমে লুপিং এবং একটি নতুন অ্যারেটি ফিরে আসুন:
function newArr(arr) {
var i=0, res = [];
while(i<arr.length){
res.push(arr[i]);
i++;
}
return res;
}
২) স্লাইস পদ্ধতিটি ব্যবহার করে, স্লাইস অ্যারের অংশটি কাটানোর জন্য, এটি আপনার অ্যারের কিছু অংশ টুকরো টুকরো করে মূলটি স্পর্শ না করে স্লাইসে, যদি অ্যারের শুরু এবং শেষটি নির্দিষ্ট না করে, এটি পুরো টুকরো টুকরো করবে অ্যারে এবং মূলত অ্যারের একটি সম্পূর্ণ অনুলিপি তৈরি করুন, তাই আমরা সহজেই বলতে পারি:
var arr2 = arr.slice(); // make a copy of the original array
3) এছাড়াও যোগাযোগের পদ্ধতি, এটি দুটি অ্যারে মার্জ করার জন্য, তবে আমরা কেবল অ্যারেগুলির মধ্যে একটি নির্দিষ্ট করতে পারি এবং তারপরে এটি মূলত নতুন পরিচিত অ্যারেটিতে একটি অনুলিপি তৈরি করে:
var arr2 = arr.concat();
৪) এছাড়াও স্ট্রিংফায়েড এবং পার্স পদ্ধতিতে এটি প্রস্তাবিত নয়, তবে অ্যারে এবং অবজেক্টগুলি অনুলিপি করার সহজ উপায় হতে পারে:
var arr2 = JSON.parse(JSON.stringify(arr));
5) অ্যারে.ফর্ম পদ্ধতি থেকে, এটি বিভিন্নভাবে সমর্থিত নয়, ব্যবহারের আগে বিভিন্ন ব্রাউজারে সমর্থনটি পরীক্ষা করুন:
const arr2 = Array.from(arr);
6) ECMA6 উপায়, পুরোপুরি সমর্থিত নয়, তবে আপনি স্থানান্তর করতে চাইলে ব্যাবেলগুলি আপনাকে সহায়তা করতে পারে:
const arr2 = [...arr];
slice
এবংsplice
অপারেশন এবং নতুন স্প্রেড অপারেটর রয়েছে এবং এরArray.from
অনেক ধীর প্রয়োগ রয়েছে। লুক এ perfjs.fnfo