আমি কীভাবে জাভাস্ক্রিপ্টে একটি অ্যারেতে একটি উপাদান আনসেট করব?


উত্তর:


243

মুছে ফেলা ব্যবহার করবেন না কারণ এটি কোনও অ্যারের থেকে কোনও উপাদান সরিয়ে ফেলবে না এটি কেবল এটি অপরিজ্ঞাত হিসাবে সেট করবে যা অ্যারের দৈর্ঘ্যে সঠিকভাবে প্রতিফলিত হবে না।

আপনি মূল জানেন তাহলে আপনি ব্যবহার করা উচিত সংযুক্ত করান অর্থাত

myArray.splice(key, 1);

স্টিভেনের অবস্থার কারও জন্য আপনি এই জাতীয় কিছু চেষ্টা করতে পারেন:

for (var key in myArray) {
    if (key == 'bar') {
        myArray.splice(key, 1);
    }
}

অথবা

for (var key in myArray) {
    if (myArray[key] == 'bar') {
        myArray.splice(key, 1);
    }
}

3
+1 ভাল কথা, আমি এটিও পছন্দ করি: ejohn.org/blog/javascript-array-remove
CMS

3
@ থিফমাস্টার - ব্যাখ্যা করার জন্য যত্নশীল? আমি এর অর্থ এবং শিখতে আগ্রহী জানি না। সর্বদা হিসাবে, একটি সম্পাদনা একটি অফ-হ্যান্ড মন্তব্যের চেয়ে 1,000,000 গুণ ভাল; আপনার জানা উচিত যে আপনার কাছে কত পরিমাণ রেপ রয়েছে।
যাচ্ছে

21
এর for (var key in myArray)পরিবর্তে ব্যবহার করুন for (key in myArray)- অন্যথায় keyবিশ্বব্যাপী পরিবর্তনশীল এবং যদি আপনি সেই লুপের ভিতরে কোনও ফাংশন কল করেন যা একই সমস্যা রয়েছে তবে আপনি অপ্রত্যাশিত ফলাফল পাবেন।
চোরমাস্টার

2
দ্রষ্টব্য, দ্বিতীয় উদাহরণটি যদি কাজ করে না তবে অ্যারেটিতে একটি সারিতে একাধিক আইটেম রয়েছে যা 'বার' এর সাথে মেলে। অ্যারের সূচকটি স্থানান্তরিত হবে এবং আপনি আইটেমের অর্ধেক ভাটা মিস করবেন। পরিবর্তে, একটি লুপ ব্যবহার করুন যা কোনও মিল খুঁজে পাওয়া গেলে সূচককে হ্রাস করে।
ডেভ ল্যান্সা

: বস্তুর একটি অ্যারে জন্য stackoverflow.com/questions/15287865/...
Fedir RYKHTIK

52
delete foo[key];

: ডি


4
প্রযুক্তিগতভাবে যে প্রশ্নের উত্তর দেয় না। সে 'বার' কীটি সরাতে চাইছে। এবং আপনার মূল পরিবর্তনশীল এটি বোঝায় না। : পি
কন

4
কী = 'বার'; eval ("মুছা foo।" + কী); চামড়া ; ডি
olliej

3
ব্যবহার করবেন নাeval । কোনও অবজেক্ট / অ্যারের কী / সূচক মুছে ফেলা অনেক সহজ পদ্ধতি ব্যবহার না করেই অর্জন করা যেতে পারে eval
দিনাই

4
প্রকৃতপক্ষে আপনি যদি foo [key] মুছে মুছে ফেলে সূচকের অ্যারে থেকে সরিয়ে থাকেন তবে এটি foo [key] = অপরিজ্ঞাত এবং foo.leth এর মান সংরক্ষণ করবে যা ভুল। তাই ব্যবহার সংযুক্ত করান পরিবর্তে
Павел Иванов

মুছে ফু [কী] এটি ভুল ব্যবহার করুন; foo.splice ব্যবহার করা উচিত (কী, 1);
vnguyen

38

একটি গুরুত্বপূর্ণ দ্রষ্টব্য: জাভাস্ক্রিপ্ট অ্যারেগুলি পিএইচপি থেকে আপনি ব্যবহার করতে পারেন এমন মিশুক অ্যারে নয়। যদি আপনার "অ্যারে কী" স্ট্রিং হয় তবে আপনি আর অ্যারের সামগ্রীতে আর পরিচালনা করছেন না। আপনার অ্যারে হ'ল একটি অবজেক্ট এবং আপনি <কী নাম> নামের সদস্যটি অ্যাক্সেস করতে বন্ধনী স্বরলিপি ব্যবহার করছেন। এভাবে:

var myArray = [];
myArray ["বার"] = সত্য;
myArray ["foo"] = সত্য;
সতর্কতা (myArray.length); // রিটার্ন 0

আপনি অ্যারেতে উপাদানগুলি যুক্ত না করায় আপনি কেবল আমারআরাইয়ের বার এবং ফুফ সদস্যদের পরিবর্তন করেছেন।


37

আপনি যদি মূল নামটি জানেন তবে কেবল এটি করুন:

delete array['key_name']

2
এটি কোন অ্যারে নয়! এটি একটি অবজেক্ট (হ্যাঁ, এগুলিকে জেএস-এ অ্যা্যাসোসিয়েটিভ অ্যারে বলা হয়, তবে না, এগুলি সত্যই নয় এবং আপনি যদি কোনও জেএস অ্যারের সাথে ট্রুলিভাবে কাজ করেন তবে এই পদ্ধতিটি ক্ষতিকারক)।
শীতকালীন কাউন্টার 15

3

এইভাবে আমি এটি করব

 myArray.splice( myArray.indexOf('bar') , 1) 

1
Array.prototype.indexOf () পদ্ধতি কোনও অ্যারের মধ্যে একটি মান সন্ধান করে, কীটির জন্য নয়। সুতরাং এটি কাজ করবে না।
নদভ

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.