এটি অ্যারের দৈর্ঘ্যের উপর নির্ভর করে। অ্যারের দৈর্ঘ্য <= 1,000,000 হয়, slice
এবং concat
পদ্ধতিগুলি প্রায় একই সময় নিচ্ছে। আপনি যখন আরও বিস্তৃত পরিসর দিন, তখন concat
পদ্ধতিটি জিতে যায়।
উদাহরণস্বরূপ, এই কোডটি চেষ্টা করে দেখুন:
var original_array = [];
for(var i = 0; i < 10000000; i ++) {
original_array.push( Math.floor(Math.random() * 1000000 + 1));
}
function a1() {
var dup = [];
var start = Date.now();
dup = original_array.slice();
var end = Date.now();
console.log('slice method takes ' + (end - start) + ' ms');
}
function a2() {
var dup = [];
var start = Date.now();
dup = original_array.concat([]);
var end = Date.now();
console.log('concat method takes ' + (end - start) + ' ms');
}
function a3() {
var dup = [];
var start = Date.now();
for(var i = 0; i < original_array.length; i ++) {
dup.push(original_array[i]);
}
var end = Date.now();
console.log('for loop with push method takes ' + (end - start) + ' ms');
}
function a4() {
var dup = [];
var start = Date.now();
for(var i = 0; i < original_array.length; i ++) {
dup[i] = original_array[i];
}
var end = Date.now();
console.log('for loop with = method takes ' + (end - start) + ' ms');
}
function a5() {
var dup = new Array(original_array.length)
var start = Date.now();
for(var i = 0; i < original_array.length; i ++) {
dup.push(original_array[i]);
}
var end = Date.now();
console.log('for loop with = method and array constructor takes ' + (end - start) + ' ms');
}
a1();
a2();
a3();
a4();
a5();
আপনি যদি অরিজিনাল_রে এর দৈর্ঘ্যকে 1,000,000 তে সেট করেন তবে slice
পদ্ধতি এবংconcat
পদ্ধতিটি প্রায় একই সময় নিচ্ছে (র্যান্ডম সংখ্যার উপর নির্ভর করে 3-4- এমএস)।
আপনি যদি অরিজিনাল-অ্যারেটির দৈর্ঘ্য 10,000,000 এ সেট করেন, তবে slice
পদ্ধতিটি 60 এমএসেরও বেশি সময় নেয় এবং concat
পদ্ধতিটি 20 এমএসেরও বেশি সময় নেয়।