বস্তুর একটি অ্যারেতে সম্পত্তি যুক্ত করুন


99

আমার নীচে দেখানো হিসাবে একটি অ্যারে আছে

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
1:Object
       id=2     
       name:'david'

আমি অবজেক্টের এই অ্যারের প্রতিটি উপাদানে অ্যাক্টিভ নামে আরও একটি সম্পত্তি যুক্ত করতে চাই।

চূড়ান্ত ফলাফল নিম্নলিখিত হিসাবে হওয়া উচিত।

Object {Results:Array[2]}
     Results:Array[2]
[0-1]
0:Object
       id=1     
       name: "Rick"
       Active: "false"
1:Object
       id=2     
       name:'david'
       Active: "false"

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


6
অ্যারে মাধ্যমে লুপ। লুপিংয়ের সময় প্রতিটি অ্যারে উপাদানগুলিতে বৈশিষ্ট্য যুক্ত করুন। আপনি কোন অংশটি করবেন তা জানেন না?
জেজেজে

উত্তর:


146

forEachঅ্যারেতে প্রতিটি উপাদানগুলির জন্য একবার সরবরাহিত ফাংশনটি কার্যকর করতে আপনি পদ্ধতিটি ব্যবহার করতে পারেন । এই সরবরাহিত ফাংশনে আপনি Activeউপাদানটিতে সম্পত্তি যুক্ত করতে পারেন ।

Results.forEach(function (element) {
  element.Active = "false";
});

199

বা ব্যবহার map

Results.map(obj=> ({ ...obj, Active: 'false' }))

আসলটি পরিবর্তন না করে পরিবর্তে প্রত্যেকের জন্য একটি নতুন অবজেক্ট ফিরিয়ে আনতে @ অ্যাড্রিয়ানলস্কের মন্তব্য প্রতিবিম্বিত করতে সম্পাদিত।

অনুমান পড়ুন


4
শুধুমাত্র ES6
Amaynut 15'18 এ

4
ES5 সুনির্দিষ্ট হতে হবে;) - তবে
বাবেল

49
মানচিত্রে একটি নতুন অ্যারে ফেরত পাঠানো উচিত বস্তুর রূপান্তর না করা, এক্ষেত্রে প্রত্যেকটির জন্য ভাল হবে, বা মানচিত্রটি ব্যবহার করে একটি নতুন অবজেক্ট Results.map(obj=> ({ ...obj, Active : 'false' }))
ফিরিয়ে দেওয়া উচিত

4
দুর্দান্ত সমাধান @ অ্যাড্রিয়ানলস্ক, আপনার এটি পৃথক উত্তর হিসাবে জমা দেওয়া উচিত।
মাইকেল হেজে


1

আমিও এই সমস্যার বিরুদ্ধে এসেছি এবং এটি সমাধান করার চেষ্টা করার সাথে সাথে আমি আমার অ্যাপ্লিকেশনটি চালিত ক্রোম ট্যাবটি ক্র্যাশ করে চলেছি। দেখে মনে হচ্ছে বস্তুর জন্য স্প্রেড অপারেটরই ছিল অপরাধী।

উপরে অ্যাড্রিয়ানলস্কের মন্তব্য এবং সিডোনাল্ডসনের উত্তর থেকে কিছুটা সাহায্য নিয়ে আমি অবজেক্ট.স্যাসাইন () বাবেল থেকে স্প্রেড অপারেটরের আউটপুট ব্যবহার করেছি , এরকম:

this.options.map(option => {
  // New properties to be added
  const newPropsObj = {
    newkey1:value1,
    newkey2:value2
  };

  // Assign new properties and return
  return Object.assign(option, newPropsObj);
});

0

এটি একটি মূল-মান কাঠামো হিসাবে বস্তুর মধ্য দিয়ে যায়। তারপরে এটি 'অ্যাক্টিভ' নামে একটি নতুন সম্পত্তি এবং এই সম্পত্তিটির ('অ্যাক্টিভ) জন্য এই বস্তুর অভ্যন্তরের প্রতিটি একক বস্তুতে একটি নমুনা মান যুক্ত করবে। এই কোড উভয় বস্তুর অ্যারে এবং অবজেক্টের অবজেক্টের জন্য প্রয়োগ করা যেতে পারে।

   Object.keys(Results).forEach(function (key){
            Object.defineProperty(Results[key], "Active", { value: "the appropriate value"});
        });

হ্যাঁ নিশ্চিত, এটি একটি মূল-মান কাঠামো হিসাবে বস্তুর মধ্য দিয়ে যায় goes তারপরে এটি 'অ্যাক্টিভ' নামে একটি নতুন সম্পত্তি এবং এই বস্তুর অভ্যন্তরের প্রতিটি একক বস্তুর জন্য একটি নমুনা মান যুক্ত করবে। এই কোড উভয় বস্তুর অ্যারে এবং অবজেক্টের অবজেক্টের জন্য প্রয়োগ করা যেতে পারে।
আরশ

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