আমি একটি জাভাস্ক্রিপ্ট অ্যারে সন্নিবেশ পদ্ধতির সন্ধান করছি, এর স্টাইলে:
arr.insert(index, item)
সাধারণত jQuery এ, তবে যে কোনও জাভাস্ক্রিপ্ট বাস্তবায়ন এই মুহুর্তে করবে।
আমি একটি জাভাস্ক্রিপ্ট অ্যারে সন্নিবেশ পদ্ধতির সন্ধান করছি, এর স্টাইলে:
arr.insert(index, item)
সাধারণত jQuery এ, তবে যে কোনও জাভাস্ক্রিপ্ট বাস্তবায়ন এই মুহুর্তে করবে।
উত্তর:
আপনি যা চান তা হ'ল splice
নেটিভ অ্যারে অবজেক্টের ফাংশন।
arr.splice(index, 0, item);
ঢোকাব item
মধ্যে arr
নির্দিষ্ট সূচিতে (মোছার 0
প্রথম আইটেম, যে, এটা ঠিক একটি সন্নিবেশ আছে)।
এই উদাহরণে আমরা একটি অ্যারে তৈরি করব এবং এর সাথে সূচি 2 তে একটি উপাদান যুক্ত করব:
var arr = [];
arr[0] = "Jani";
arr[1] = "Hege";
arr[2] = "Stale";
arr[3] = "Kai Jim";
arr[4] = "Borge";
console.log(arr.join());
arr.splice(2, 0, "Lene");
console.log(arr.join());
arr.splice(2,3)
সূচক 2 থেকে শুরু হওয়া 3 টি উপাদান সরিয়ে ফেলবে 3 য় পাস না করে .... Nth প্যারামিটার কিছুই sertedোকানো হয় না। সুতরাং নামটিও insert()
বিচার করে না।
এটি করে আপনি Array.insert
পদ্ধতিটি প্রয়োগ করতে পারেন :
Array.prototype.insert = function ( index, item ) {
this.splice( index, 0, item );
};
তারপরে আপনি এটি ব্যবহার করতে পারেন:
var arr = [ 'A', 'B', 'D', 'E' ];
arr.insert(2, 'C');
// => arr == [ 'A', 'B', 'C', 'D', 'E' ]
Array.prototype.insert = function (index, items) { this.splice.apply(this, [index, 0].concat(items)); }
স্প্লাইস ব্যতীত, আপনি এই পদ্ধতির ব্যবহার করতে পারেন যা মূল অ্যারেটিকে রূপান্তরিত করবে না, তবে যুক্ত আইটেমটি দিয়ে একটি নতুন অ্যারে তৈরি করবে। আপনার যখনই সম্ভব সম্ভব পরিবর্তনগুলি এড়ানো উচিত। আমি এখানে ES6 স্প্রেড অপারেটর ব্যবহার করছি।
const items = [1, 2, 3, 4, 5]
const insert = (arr, index, newItem) => [
// part of the array before the specified index
...arr.slice(0, index),
// inserted item
newItem,
// part of the array after the specified index
...arr.slice(index)
]
const result = insert(items, 1, 10)
console.log(result)
// [1, 10, 2, 3, 4, 5]
এটি নতুন আইটেমগুলির জন্য বাকি অপারেটরটি ব্যবহার করতে ফাংশনটি কিছুটা টুইট করে একাধিক আইটেম যুক্ত করতে ব্যবহৃত হতে পারে এবং প্রত্যাবর্তিত ফলাফলের মধ্যেও ছড়িয়ে দিতে পারে
const items = [1, 2, 3, 4, 5]
const insert = (arr, index, ...newItems) => [
// part of the array before the specified index
...arr.slice(0, index),
// inserted items
...newItems,
// part of the array after the specified index
...arr.slice(index)
]
const result = insert(items, 1, 10, 20)
console.log(result)
// [1, 10, 20, 2, 3, 4, 5]
insert
পদ্ধতি/* Syntax:
array.insert(index, value1, value2, ..., valueN) */
Array.prototype.insert = function(index) {
this.splice.apply(this, [index, 0].concat(
Array.prototype.slice.call(arguments, 1)));
return this;
};
এটি একাধিক উপাদান সন্নিবেশ করতে পারে (দেশীয় হিসাবে splice
) এবং চেইন সমর্থন করে:
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(1, 6);
// ["b", "X", "Y", "Z", "c"]
/* Syntax:
array.insert(index, value1, value2, ..., valueN) */
Array.prototype.insert = function(index) {
index = Math.min(index, this.length);
arguments.length > 1
&& this.splice.apply(this, [index, 0].concat([].pop.call(arguments)))
&& this.insert.apply(this, arguments);
return this;
};
এটি প্রদত্ত অ্যারের সাথে যুক্তিগুলি থেকে অ্যারেগুলিকে মার্জ করতে পারে এবং চেইনিং সমর্থন করে:
["a", "b", "c", "d"].insert(2, "V", ["W", "X", "Y"], "Z").join("-");
// "a-b-V-W-X-Y-Z-c-d"
["b", "X", "Y", "Z", "c"]
। কেন "d"
অন্তর্ভুক্ত করা হয় না ? আমার কাছে মনে হচ্ছে আপনি যদি 6 টি দ্বিতীয় প্যারামিটার হিসাবে স্থাপন করেন slice()
এবং নির্দিষ্ট সূচী থেকে শুরু করে অ্যারেতে 6 টি উপাদান থাকে তবে আপনার ফিরে আসা মানটিতে 6 টি উপাদান পাওয়া উচিত। (ডক বলেছেন howMany
যে পরামিতি জন্য।) Developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/...
["a", "b", "c", "d"].insert(2, "X", "Y", "Z").slice(3, 3);
=>[ ]
slice
পদ্ধতিটি ব্যবহার করেছি এবং না splice
, যা আপনি মন্তব্যে উল্লেখ করছেন। slice
(নামযুক্ত end
) এর দ্বিতীয় প্যারামিটারটি শূন্য-ভিত্তিক সূচক যাতে নিষ্কাশন শেষ হবে। slice
পর্যন্ত নিষ্কাশন কিন্তু অন্তর্ভুক্ত নাend
। অত: পর পর insert
আপনি ["a", "b", "X", "Y", "Z", "c", "d"]
যেখান থেকে, slice
থেকে সূচকের সঙ্গে নির্যাস উপাদান 1
পর্যন্ত 6
থেকে, অর্থাত্ "b"
করার "d"
কিন্তু সহ না "d"
। এটা বোঝা যায় না?
আপনি যদি একবারে কোনও অ্যারেতে একাধিক উপাদান সন্নিবেশ করতে চান তবে এই স্ট্যাক ওভারফ্লো উত্তরটি দেখুন: জাভাস্ক্রিপ্টের একটি অ্যারেতে অ্যারে বিভক্ত করার একটি আরও ভাল উপায়
উভয় উদাহরণ চিত্রিত করার জন্য এখানে কিছু ফাংশন রয়েছে:
function insertAt(array, index) {
var arrayToInsert = Array.prototype.splice.apply(arguments, [2]);
return insertArrayAt(array, index, arrayToInsert);
}
function insertArrayAt(array, index, arrayToInsert) {
Array.prototype.splice.apply(array, [index, 0].concat(arrayToInsert));
return array;
}
অবশেষে এখানে একটি জেএসফিডাল যাতে আপনি এটি নিজের জন্য দেখতে পারেন: http://jsfiddle.net/luisperezphd/Wc8aS/
এবং এইভাবে আপনি ফাংশনগুলি ব্যবহার করেন:
// if you want to insert specific values whether constants or variables:
insertAt(arr, 1, "x", "y", "z");
// OR if you have an array:
var arrToInsert = ["x", "y", "z"];
insertArrayAt(arr, 1, arrToInsert);
যথাযথ ক্রিয়ামূলক প্রোগ্রামিং এবং শৃঙ্খলাবদ্ধতার উদ্দেশ্যে একটি উদ্ভাবন জরুরি Array.prototype.insert()
। আসলে স্প্লাইসটি নিখুঁত হতে পারত যদি এটি সম্পূর্ণ অর্থহীন খালি অ্যারের পরিবর্তে পরিবর্তিত অ্যারেটি ফিরিয়ে দেয়। সুতরাং এখানে এটি যায়
Array.prototype.insert = function(i,...rest){
this.splice(i,0,...rest)
return this
}
var a = [3,4,8,9];
document.write("<pre>" + JSON.stringify(a.insert(2,5,6,7)) + "</pre>");
ঠিক আছে, Array.prototype.splice()
উপরেরটিটির সাথে আসল অ্যারেটি পরিবর্তিত হয় এবং কেউ কেউ অভিযোগ করতে পারে "" আপনার নিজেরটি যা পরিবর্তন করে তা পরিবর্তন করা উচিত নয় "এবং এটি সঠিক হতে পারে। সুতরাং জনকল্যাণের জন্য আমি অন্যটি দিতে চাই Array.prototype.insert()
যা মূল অ্যারেটি পরিবর্তন করে না। এখানে এটা যায়;
Array.prototype.insert = function(i,...rest){
return this.slice(0,i).concat(rest,this.slice(i));
}
var a = [3,4,8,9],
b = a.insert(2,5,6,7);
console.log(JSON.stringify(a));
console.log(JSON.stringify(b));
splice
মূল অ্যারেটিকে রূপান্তর করেছেন তা প্রদত্ত বলে আমি মনে করি না যে "যথাযথ ক্রিয়ামূলক প্রোগ্রামিং" এর আশেপাশের কোথাও অন্তর্ভুক্ত splice
।
আমি এই ক্ষেত্রে খাঁটি জাভাস্ক্রিপ্ট ব্যবহার করার পরামর্শ দিচ্ছি , এছাড়াও জাভাস্ক্রিপ্টে কোনও সন্নিবেশ পদ্ধতি নেই, তবে আমাদের কাছে এমন একটি পদ্ধতি রয়েছে যা একটি বিল্ট-ইন অ্যারে পদ্ধতি যা আপনার জন্য কাজ করে, তাকে স্প্লাইস বলা হয় ...
আসুন দেখে নেওয়া যাক কি বিভক্ত () ...
স্প্লাইস () পদ্ধতিটি বিদ্যমান উপাদানগুলি সরিয়ে এবং / অথবা নতুন উপাদান যুক্ত করে একটি অ্যারের সামগ্রী পরিবর্তন করে।
ঠিক আছে, কল্পনা করুন আমাদের নীচে এই অ্যারে রয়েছে:
const arr = [1, 2, 3, 4, 5];
আমরা এটির 3
মতো অপসারণ করতে পারি :
arr.splice(arr.indexOf(3), 1);
এটি 3 ফিরে আসবে, তবে এখনই আরারটি পরীক্ষা করা থাকলে আমাদের কাছে রয়েছে:
[1, 2, 4, 5]
এতক্ষণ, এত ভাল, তবে আমরা কীভাবে স্প্লাইস ব্যবহার করে অ্যারেতে একটি নতুন উপাদান যুক্ত করতে পারি? আসুন 3 টি পিছনে রাখা যাক ...
arr.splice(2, 0, 3);
আসুন দেখি আমরা কী করেছি ...
আমরা আবার স্প্লাইস ব্যবহার করি , তবে এবার দ্বিতীয় আর্গুমেন্টের জন্য, আমরা 0 পার করি , এর অর্থ আমরা কোনও আইটেম মুছতে চাই না, তবে একই সাথে আমরা তৃতীয় যুক্তি যুক্ত করি যা 3 হয় যা দ্বিতীয় সূচীতে যুক্ত হবে ...
আপনার সচেতন হওয়া উচিত, যে আমরা একই সাথে মুছতে এবং যুক্ত করতে পারি, উদাহরণস্বরূপ এখন আমরা এটি করতে পারি:
arr.splice(2, 2, 3);
যা সূচক 2 এ 2 টি আইটেম মুছে ফেলবে , তারপরে সূচক 2 এ 3 যুক্ত করবে এবং ফলাফলটি হবে:
[1, 2, 3, 5];
এটি দেখিয়ে দিচ্ছে যে বিচ্ছিন্ন প্রতিটি আইটেম কাজ করে:
অ্যারে.স্প্লাইস (শুরু করুন, মুছে ফেলা অ্যাকাউন্ট, আইটেম 1, আইটেম 2, আইটেম 3 ...)
একটি নির্দিষ্ট সূচীতে একক উপাদান যুক্ত করুন
//Append at specific position(here at index 1)
arrName.splice(1, 0,'newName1');
//1: index number, 0: number of element to remove, newName1: new element
//Append at specific position (here at index 3)
arrName[3] = 'newName1';
নির্দিষ্ট সূচীতে একাধিক উপাদান যুক্ত করুন
//Append from index number 1
arrName.splice(1, 0,'newElemenet1', 'newElemenet2', 'newElemenet3');
//1: index number from where append start,
//0: number of element to remove,
//newElemenet1,2,3: new elements
arrName[3] = 'newName1';
অ্যারেতে মাত্র 3 টি উপাদান থাকলে @ শ্রীকৃষ্ণ সংযোজন করবেন। সূচক 3-এ যদি কোনও উপাদান থাকে তবে এটি প্রতিস্থাপন করা হবে। আপনি যদি শেষে সংযোজন করতে চান তবে এটি ব্যবহার করা ভালarrName.push('newName1');
ব্যবহারের সাথে আরও একটি সম্ভাব্য সমাধান Array#reduce
।
var arr = ["apple", "orange", "raspberry"],
arr2 = [1, 2, 4];
function insert(arr, item, index) {
arr = arr.reduce(function(s, a, i) {
i == index ? s.push(item, a) : s.push(a);
return s;
}, []);
console.log(arr);
}
insert(arr, "banana", 1);
insert(arr2, 3, 2);
এখানে দুটি উপায় রয়েছে:
const array = [ 'My', 'name', 'Hamza' ];
array.splice(2, 0, 'is');
console.log("Method 1 : ", array.join(" "));
অথবা
Array.prototype.insert = function ( index, item ) {
this.splice( index, 0, item );
};
const array = [ 'My', 'name', 'Hamza' ];
array.insert(2, 'is');
console.log("Method 2 : ", array.join(" "));
যদিও এর ইতিমধ্যে উত্তর দেওয়া হয়েছে, আমি বিকল্প পদ্ধতির জন্য এই নোটটি যুক্ত করছি।
আমি একটি পরিচিত নম্বর রাখতে চাই আইটেমগুলির একটি অ্যারেতে নির্দিষ্ট অবস্থানগুলিতে , কারণ এগুলি একটি "এসোসিয়েটিভ অ্যারে" (অর্থাত্ কোনও বস্তু) থেকে আসে, যা সংজ্ঞায়িত অনুসারে বাছাই করা ক্রমে গ্যারান্টিযুক্ত নয়। আমি ফলস্বরূপ অ্যারেটি বস্তুর একটি অ্যারে হতে চেয়েছিলাম, তবে অ্যারেগুলি তাদের ক্রমের গ্যারান্টি দেয় বলে বস্তুগুলি অ্যারেটিতে একটি নির্দিষ্ট ক্রমে থাকবে। তাই আমি এটি করেছি।
প্রথম উত্স অবজেক্ট, পোস্টগ্র্রেএসকিউএল থেকে পুনরায় প্রাপ্ত একটি জেএসওএনবি স্ট্রিং। আমি প্রতিটি সন্তানের অবজেক্টে এটি "অর্ডার" সম্পত্তি অনুসারে বাছাই করতে চেয়েছিলাম।
var jsonb_str = '{"one": {"abbr": "", "order": 3}, "two": {"abbr": "", "order": 4}, "three": {"abbr": "", "order": 5}, "initialize": {"abbr": "init", "order": 1}, "start": {"abbr": "", "order": 2}}';
var jsonb_obj = JSON.parse(jsonb_str);
যেহেতু অবজেক্টে নোডের সংখ্যা জানা যায়, আমি প্রথমে নির্দিষ্ট দৈর্ঘ্যের সাথে একটি অ্যারে তৈরি করি:
var obj_length = Object.keys(jsonb_obj).length;
var sorted_array = new Array(obj_length);
এবং তারপরে অবজেক্টটি পুনরাবৃত্তি করুন, নতুনভাবে তৈরি অস্থায়ী বস্তুগুলিকে অ্যারেতে পছন্দসই স্থানে স্থাপন করুন সত্যই কোনও "বাছাই" না করেই।
for (var key of Object.keys(jsonb_obj)) {
var tobj = {};
tobj[key] = jsonb_obj[key].abbr;
var position = jsonb_obj[key].order - 1;
sorted_array[position] = tobj;
}
console.dir(sorted_array);
যে কেউ এখনও এটিকে নিয়ে সমস্যা রয়েছে এবং উপরের সমস্ত বিকল্প ব্যবহার করে দেখেছেন এবং এটি কখনও পান নি। আমি আমার সমাধানটি ভাগ করছি, এটি বিবেচনার জন্য যে আপনি অ্যারে বনাম আপনার বস্তুর বৈশিষ্ট্যগুলি স্পষ্টভাবে বলতে চান না।
function isIdentical(left, right){
return JSON.stringify(left) === JSON.stringify(right);
}
function contains(array, obj){
let count = 0;
array.map((cur) => {
if(this.isIdentical(cur, obj)) count++;
});
return count > 0;
}
এটি রেফারেন্স অ্যারেটি পুনরায় করা এবং আপনি যে বস্তুটি পরীক্ষা করতে চেয়েছিলেন তার সাথে এটির তুলনা করে উভয়কে একটি স্ট্রিংয়ে রূপান্তর করুন এবং যদি এটি মেলে তবে পুনরাবৃত্ত হয়। তারপরে আপনি কেবল গণনা করতে পারেন। এটি উন্নত করা যেতে পারে তবে আমি এখানেই স্থির হয়েছি। আশাকরি এটা সাহায্য করবে.
নিম্নলিখিত হিসাবে হ্রাস পদ্ধতির লাভ গ্রহণ:
function insert(arr, val, index) {
return index >= arr.length
? arr.concat(val)
: arr.reduce((prev, x, i) => prev.concat(i === index ? [val, x] : x), []);
}
সুতরাং এই উপায়ে আমরা একটি নতুন অ্যারে ফিরিয়ে দিতে পারি (একটি দুর্দান্ত কার্যকরী উপায় হবে - পুশ বা স্প্লাইস ব্যবহারের চেয়ে আরও ভাল) ইনডেক্সে sertedোকানো উপাদানটির সাথে, এবং যদি সূচকের অ্যারের দৈর্ঘ্যের চেয়ে বেশি হয় তবে এটি সন্নিবেশ করা হবে শেষে.
Array#splice()
আপনি যদি সত্যিই অ্যারে পরিবর্তনকে এড়াতে না চান তবেই যাওয়ার উপায়। 2 অ্যারে দেওয়া arr1
এবং arr2
, এখানে কিভাবে আপনি সামগ্রীগুলি প্রবেশ করানোর চাই arr2
মধ্যে arr1
প্রথম উপাদান পরে:
const arr1 = ['a', 'd', 'e'];
const arr2 = ['b', 'c'];
arr1.splice(1, 0, ...arr2); // arr1 now contains ['a', 'b', 'c', 'd', 'e']
console.log(arr1)
আপনি অ্যারে mutating (উদাহরণস্বরূপ, যদি Immutable.js ব্যবহার করে), আপনি যদি এর পরিবর্তে ব্যবহার করতে পারেন করার বিষয়ে উদ্বিগ্ন থাকেন slice()
, না সঙ্গে বিভ্রান্ত করা যাবে splice()
একটি সঙ্গে 'p'
।
const arr3 = [...arr1.slice(0, 1), ...arr2, ...arr1.slice(1)];
আমি এটি চেষ্টা করেছিলাম এবং এটি ভাল কাজ করছে!
var initialArr = ["India","China","Japan","USA"];
initialArr.splice(index, 0, item);
সূচি হ'ল অবস্থান যেখানে আপনি উপাদানটি সন্নিবেশ করতে বা মুছতে চান। 0 অর্থাৎ দ্বিতীয় প্যারামিটারগুলি সূচক থেকে সরানো আইটেমের সংখ্যার সংজ্ঞা দেয় যে নতুন এন্ট্রিগুলি আপনি অ্যারে করতে চান। এটি এক বা একাধিক হতে পারে।
initialArr.splice(2, 0, "Nigeria");
initialArr.splice(2, 0, "Australia","UK");
এখানে একটি কার্যকারী ফাংশন যা আমি আমার অ্যাপ্লিকেশনগুলির একটিতে ব্যবহার করি।
আইটেমটি প্রস্থান করে কিনা তা পরীক্ষা করে
let ifExist = (item, strings = [ '' ], position = 0) => {
// output into an array with empty string. Important just in case their is no item.
let output = [ '' ];
// check to see if the item that will be positioned exist.
if (item) {
// output should equal to array of strings.
output = strings;
// use splice in order to break the array.
// use positition param to state where to put the item
// and 0 is to not replace an index. Item is the actual item we are placing at the prescribed position.
output.splice(position, 0, item);
}
//empty string is so we do not concatenate with comma or anything else.
return output.join("");
};
এবং তারপর আমি এটি নীচে কল।
ifExist("friends", [ ' ( ', ' )' ], 1)} // output: ( friends )
ifExist("friends", [ ' - '], 1)} // output: - friends
ifExist("friends", [ ':'], 0)} // output: friends:
কিছুটা পুরানো থ্রেড, তবে আমাকে উপরে রেডুর সাথে একমত হতে হবে কারণ স্প্লাইসটিতে অবশ্যই একটি বিভ্রান্তিকর ইন্টারফেস রয়েছে। এবং সিডিবাজোরিন যে প্রতিক্রিয়া দিয়েছিলেন যে "দ্বিতীয় প্যারামিটারটি 0 হলে এটি কেবল একটি খালি অ্যারে প্রদান করে" যদি এটি 0 এর চেয়ে বেশি হয় তবে এটি অ্যারে থেকে সরানো আইটেমগুলি ফিরিয়ে দেয় "সঠিক, বিন্দুটি প্রমাণ করে। ফাংশনটির উদ্দেশ্যটি বিভক্ত করা বা জাকোব কেলারের আগে যেমন বলা হয়েছিল, "যোগদান করা বা সংযোগ স্থাপন করাও পরিবর্তন করা to আপনার একটি প্রতিষ্ঠিত অ্যারে রয়েছে যা আপনি এখন পরিবর্তন করছেন যা উপাদান যুক্ত করা বা অপসারণের সাথে জড়িত ..." প্রদত্ত, মুছে ফেলা উপাদানগুলির রিটার্ন মান, সর্বোপরি বিশ্রী। এবং আমি 100% একমত যে এই পদ্ধতিটি প্রাকৃতিক বলে মনে হয় যদি এটি ফিরে আসে তবে মেশানো উপাদানগুলির সাথে একটি নতুন অ্যারে যুক্ত হয় তবে শৃঙ্খলার পক্ষে আরও উপযুক্ত হতে পারত। তারপরে আপনি ["19", "17"] এর মতো জিনিসগুলি করতে পারেন sp স্প্লাইস (1,0, "18") join যোগ দিন ("...") অথবা আপনি ফিরে আসা অ্যারের সাথে যা কিছু পছন্দ করেন। এটি সরিয়ে ফেলা হয়েছে যা ফিরে আসে তা হ'ল কেবল বেমানান আইএমএইচও। যদি পদ্ধতির উদ্দেশ্যটি ছিল "উপাদানগুলির একটি সেট কাটা" এবং এটি কেবল এটিই ছিল, সম্ভবত। দেখে মনে হচ্ছে আমি ইতিমধ্যে আমি কী কাটাচ্ছি তা না জানলেও, আমার সম্ভবত সেই উপাদানগুলি কেটে ফেলার খুব কম কারণ আছে, তাই না? এটি যদি কনক্যাট, মানচিত্র, হ্রাস, স্লাইস ইত্যাদির মতো আচরণ করে তবে এটি আরও ভাল হবে যেখানে বিদ্যমান অ্যারেটি পরিবর্তনের পরিবর্তে বিদ্যমান অ্যারে থেকে নতুন অ্যারে তৈরি করা হয়। এগুলি সমস্ত চেইনযোগ্য, এবং এটি একটি উল্লেখযোগ্য বিষয়। এটি চেইন অ্যারে হেরফেরের চেয়ে সাধারণ rather মনে হচ্ছে ভাষার এক বা অন্য দিকে যেতে হবে এবং যথাসম্ভব এটিকে আঁকড়ে ধরার চেষ্টা করা উচিত। জাভাস্ক্রিপ্ট কার্যকরী এবং কম ঘোষণামূলক হওয়ায় এটি আদর্শ থেকে একটি অদ্ভুত বিচ্যুতি বলে মনে হচ্ছে।
আজ (2020.04.24) আমি বড় এবং ছোট অ্যারেগুলির জন্য নির্বাচিত সমাধানগুলির জন্য পরীক্ষাগুলি সম্পাদন করি। আমি সেগুলি ক্রোম 81.0, সাফারি 13.1, ফায়ারফক্স 75.0 এ ম্যাকওস হাই সিয়েরা 10.13.6 এ পরীক্ষা করেছি।
সমস্ত ব্রাউজারের জন্য
slice
এবং reduce
(ডি, ই, এফ) সাধারণত স্থানের সমাধানগুলির চেয়ে 10x-100x দ্রুত হয়splice
(এআই, বিআই, সিআই) ভিত্তিক ইন-প্লেস- সলিউশনগুলি দ্রুত ছিল (কখনও কখনও x 100x - তবে এটি অ্যারের আকারের উপর নির্ভর করে)পরীক্ষাগুলি দুটি গ্রুপে বিভক্ত ছিল: ইন-প্লেস সলিউশন (এআই, বিআই, সিআই) এবং নন-ইন-প্লেস সলিউশন (ডি, ই, এফ) এবং দুটি মামলার জন্য সম্পাদন করা হয়েছিল
পরীক্ষিত কোড নীচে স্নিপেট উপস্থাপন করা হয়
Chrome এ ছোট অ্যারের উদাহরণস্বরূপ ফলাফলগুলি নীচে রয়েছে are