আমার আছে:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
আমি কিছু করতে সক্ষম হতে চাই:
array.remove("B");
তবে কোনও সরানোর কাজ নেই। আমি কীভাবে এটি সম্পাদন করব?
আমার আছে:
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
আমি কিছু করতে সক্ষম হতে চাই:
array.remove("B");
তবে কোনও সরানোর কাজ নেই। আমি কীভাবে এটি সম্পাদন করব?
উত্তর:
আমি আসলে এই থ্রেডটিকে আরও সাম্প্রতিক 1-লাইন সমাধান দিয়ে আপডেট করছি:
let arr = ['A', 'B', 'C'];
arr = arr.filter(e => e !== 'B'); // will return ['A', 'C']
মূলত ধারণাটি হ'ল যে উপাদানটি আপনি মুছতে চান তার চেয়ে আলাদা আলাদা আলাদা উপাদান নির্বাচন করে অ্যারে ফিল্টার করা।
দ্রষ্টব্য: সমস্ত ঘটনা সরিয়ে ফেলবে।
সম্পাদনা করুন:
আপনি যদি কেবলমাত্র প্রথম ঘটনাটি সরাতে চান:
t = ['A', 'B', 'C', 'B'];
t.splice(t.indexOf('B'), 1); // will return ['B'] and t is now equal to ['A', 'C', 'B']
বিপরীত ক্রমে তালিকাটি লুপ করুন এবং .splice
পদ্ধতিটি ব্যবহার করুন ।
var array = ['A', 'B', 'C']; // Test
var search_term = 'B';
for (var i=array.length-1; i>=0; i--) {
if (array[i] === search_term) {
array.splice(i, 1);
// break; //<-- Uncomment if only the first term has to be removed
}
}
বিপরীত ক্রমটি গুরুত্বপূর্ণ যখন অনুসন্ধান শব্দটির সমস্ত উপস্থিতি অপসারণ করতে হয়। অন্যথায়, কাউন্টারটি বাড়বে, এবং আপনি উপাদানগুলি এড়িয়ে যাবেন।
যখন কেবল প্রথম ঘটনাটি সরিয়ে ফেলতে হবে, নিম্নলিখিতগুলিও কাজ করবে:
var index = array.indexOf(search_term); // <-- Not supported in <IE9
if (index !== -1) {
array.splice(index, 1);
}
0
স্বয়ংক্রিয়ভাবে এটির মতো দ্রুত হয় না, বলুন, সি। যতক্ষণ না আপনি সীমাটি ক্যাশে করেন অবশ্যই, যা প্রথম ম্যাচের পরেও চলতে থাকলে বিষয়গুলিকে জটিল করে তুলবে (তবে আপনি এটি থামিয়ে রাখেন না)।
ওয়ান লাইনারের তালিকা
আসুন এই অ্যারেটির জন্য এই সমস্যাটি সমাধান করুন:
var array = ['A', 'B', 'C'];
1. শুধুমাত্র প্রথমটি সরান: আপনি যদি নিশ্চিত হন যে আইটেমটির অস্তিত্ব রয়েছে
array.splice(array.indexOf('B'), 1);
২. কেবলমাত্র সর্বশেষটি সরান: আপনি যদি নিশ্চিত হন যে আইটেমটির অস্তিত্ব রয়েছে
array.splice(array.lastIndexOf('B'), 1);
৩. সমস্ত উপস্থিতি সরান:
array = array.filter(v => v !== 'B');
আপনি যা অনুসন্ধান করছেন তার অবস্থান অনুসন্ধান করতে হবে এবং .indexOf()
তারপরে এটি সরিয়ে ফেলুন.splice()
function remove(arr, what) {
var found = arr.indexOf(what);
while (found !== -1) {
arr.splice(found, 1);
found = arr.indexOf(what);
}
}
var array = new Array();
array.push("A");
array.push("B");
array.push("C");
remove(array, 'B');
alert(array);
এটি সমস্ত ঘটনাগুলির যত্ন নেবে।
.indexOf()
আপনি যোগ করতে পারেন এই আপনার জাভাস্ক্রিপ্ট ফাইলে।
Uncaught ReferenceError: array is not defined
। কি সমস্যা?
.indexOf()
। আপনি যদি found
.indexOf()
found = arr.indexOf(what, found);
কেবল
array.splice(array.indexOf(item), 1);
-1
যদি কিছু না পাওয়া যায় এবং ওফস, সূচকগুলি ছাড়া ফিরে আসবে তবে স্প্লাইস অ্যারের প্রান্ত থেকে 1 টি উপাদান মুছে ফেলবে
সহজ সমাধান (ES6)
আপনার যদি সদৃশ উপাদান না থাকে
Array.prototype.remove = function(elem) {
var indexElement = this.findIndex(el => el === elem);
if (indexElement != -1)
this.splice(indexElement, 1);
return this;
};
আপনাকে নিজের মুছে ফেলার কথা লিখতে হবে। আপনি অ্যারের উপরে লুপ করতে পারেন, আপনি যে আইটেমটি সরাতে চান তার সূচিটি ধরতে পারেন splice
এবং এটি অপসারণ করতে ব্যবহার করতে পারেন।
বিকল্পভাবে, আপনি একটি নতুন অ্যারে তৈরি করতে পারেন, বর্তমান অ্যারের উপর লুপ করতে পারেন এবং যদি বর্তমান অবজেক্টটি আপনি মুছে ফেলতে চান তার সাথে মেলে না, এটি একটি নতুন অ্যারেতে রাখুন।
ব্যবহার করুন:
array.splice(2, 1);
এটি সূচি 2 (3 য় আইটেম) থেকে শুরু করে অ্যারে থেকে একটি আইটেম সরিয়ে ফেলবে
array.splice(2,1)
যা সূচি 2 এ 1 আইটেমটিকে অ্যারে থেকে সরিয়ে দেয়। পরীক্ষা https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice আরো বিস্তারিত জানার জন্য
অ্যারে.স্প্লাইস ব্যবহার করুন
/*array.splice(index , howMany[, element1[, ...[, elementN]]])
array.splice(index) // SpiderMonkey/Firefox extension*/
array.splice(1,1)
সূত্র: https://developer.mozilla.org/en-US/docs/Web/JavaScript/ উল্লেখ / গ্লোবাল_অবজেক্টস / অ্যারে / স্প্লাইস
array
এবং splice
একটি বিন্দু হতে হবে।
.indexOf()
এবং এর সমন্বয় করা.splice()
উচিত। অথবা হতে পারে, বিকল্পভাবে.filter()
,।