Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

JavaScript में लूप के बिना मिलते-जुलते ऐरे आइटम को नया मान कैसे असाइन करें?

filter() से मिलते-जुलते आइटम्स ढूंढें, फिर map() या forEach() से मान अपडेट करें - स्पष्ट लूप लिखे बिना।

बुनियादी उदाहरण

const students = [
    { Name: "John" },
    { Name: "David" },
    { Name: "Bob" },
    { Name: "Mike" }
];

const nameToChange = "Bob";

// filter से मिलान करने वाले ढूंढें, map से अपडेट करें
students
    .filter(obj => obj.Name === nameToChange)
    .forEach(obj => obj.Name = "Carol");  // forEach से म्यूटेट

console.log(students);
// [ { Name: 'John' }, { Name: 'David' }, { Name: 'Carol' }, { Name: 'Mike' } ]

वैकल्पिक: map से नई ऐरे बनाएं (इम्यूटेबल)

const updated = students.map(obj => 
    obj.Name === nameToChange ? { ...obj, Name: "Carol" } : obj
);

console.log("मूल:", students);    // अपरिवर्तित
console.log("नई:", updated);       // Bob → Carol

एकाधिक मिलान अपडेट करें

const items = [
    { id: 1, status: 'pending' },
    { id: 2, status: 'pending' },
    { id: 3, status: 'done' }
];

// सभी pending को processing बनाएं
items
    .filter(item => item.status === 'pending')
    .forEach(item => item.status = 'processing');

console.log(items);
// सभी pending अब processing हैं

findIndex + डायरेक्ट एक्सेस (सिंगल आइटम के लिए तेज़)

const index = students.findIndex(s => s.Name === "Bob");
if (index !== -1) {
    students[index].Name = "Carol";
}

चलाने का तरीका

node update-without-loop.js

आउटपुट

[ 
  { Name: 'John' }, 
  { Name: 'David' }, 
  { Name: 'Carol' }, 
  { Name: 'Mike' } 
]

तुलना

विधिम्यूटेट करता हैपक्षविपक्ष
filter + forEachहांपठनीय, चेनिंगदो पास
map (नई ऐरे)नहींइम्यूटेबल, सुरक्षितनई ऐरे बनाता है
findIndex + सीधा एक्सेसहांसबसे तेज़ (सिंगल)केवल पहला मिलान
for लूपहांनियंत्रण, तेज़अधिक कोड

नोट

"बिना लूप के" का अर्थ है स्पष्ट for/while न लिखना - आंतरिक रूप से filter/map/forEach लूप ही उपयोग करते हैं।

  1. जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाना जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाना

    परिचय जावास्क्रिप्ट में ऐरे बनाने का एक तरीका new Array() कंस्ट्रक्टर का उपयोग करना है। हालांकि, ऐरे लिटरल सिंटैक्स [] आमतौर पर पसंद किया जाता है क्योंकि यह अधिक संक्षिप्त और तेज़ है। उदाहरण निम्न कोड जावास्क्रिप्ट में new कीवर्ड के साथ ऐरे बनाने के लिए है: <!DOCTYPE html> <html lang=&qu

  1. जावास्क्रिप्ट रेगुलर एक्सप्रेशन में मैचेस पर लूप करना जावास्क्रिप्ट रेगुलर एक्सप्रेशन में मैचेस पर लूप करना

    जावास्क्रिप्ट में रेगुलर एक्सप्रेशन मैचेस पर लूप करने के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style> &n

  1. जावास्क्रिप्ट ऑब्जेक्ट को नए ऐरे में फ़ॉर्मेट करना जावास्क्रिप्ट ऑब्जेक्ट को नए ऐरे में फ़ॉर्मेट करना

    जावास्क्रिप्ट ऑब्जेक्ट को नए ऐरे में फ़ॉर्मेट करने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>