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

JavaScript में ऐरे से अग्रणी शून्य (leading zeros) कैसे हटाएं?

filter() मेथड से ऐरे के शुरुआत में आने वाले 0 मान हटाएं, लेकिन पहले गैर-शून्य मान के बाद आने वाले शून्य बरकरार रखें।

समस्या समझें

[0, 0, 0, 10, 12, 0] → [10, 12, 0]  // शुरुआती 0 हटे, अंतिम 0 रखा
[10, 0, 12, 0, 0] → [10, 0, 12, 0, 0] // कोई शुरुआती 0 नहीं
[12, 0, 0, 1, 0, 0] → [12, 0, 0, 1, 0, 0] // कोई शुरुआती 0 नहीं

फंक्शन कार्यान्वयन

function removeLeadingZeros(arr) {
    let foundNonZero = false;
    
    return arr.filter(value => {
        if (value !== 0) {
            foundNonZero = true;
        }
        return foundNonZero || value !== 0;
    });
}

// या संक्षिप्त रूप (क्लोजर के साथ)
const removeLeadingZero = input => 
    input.filter((lastNonZero => value => lastNonZero = lastNonZero || value)(false));

// टेस्ट
console.log(removeLeadingZeros([10, 0, 12, 0, 0]));       // [10, 0, 12, 0, 0]
console.log(removeLeadingZeros([0, 0, 0, 0, 0, 0, 10, 12, 0])); // [10, 12, 0]
console.log(removeLeadingZeros([12, 0, 0, 1, 0, 0]));     // [12, 0, 0, 1, 0, 0]
console.log(removeLeadingZeros([0, 0, 0]));                // []

स्पष्ट संस्करण (समझने में आसान)

function removeLeadingZerosClear(arr) {
    // पहला गैर-शून्य इंडेक्स ढूंढें
    const firstNonZeroIndex = arr.findIndex(v => v !== 0);
    
    // यदि सभी शून्य हैं या ऐरे खाली है
    if (firstNonZeroIndex === -1) return [];
    
    // उस इंडेक्स से स्लाइस करें
    return arr.slice(firstNonZeroIndex);
}

console.log(removeLeadingZerosClear([0, 0, 10, 12, 0])); // [10, 12, 0]

स्ट्रिंग्स के लिए (यदि ऐरे में स्ट्रिंग "0" हैं)

function removeLeadingZeroStrings(arr) {
    let started = false;
    return arr.filter(v => {
        if (v !== "0" && v !== 0) started = true;
        return started || v !== "0" && v !== 0;
    });
}

console.log(removeLeadingZeroStrings(["0", "0", "5", "0", "3"])); // ["5", "0", "3"]

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

node remove-leading-zeros.js

आउटपुट

[ 10, 0, 12, 0, 0 ]
[ 10, 12, 0 ]
[ 12, 0, 0, 1, 0, 0 ]

महत्वपूर्ण अंतर

ऑपरेशनकोडपरिणाम
सभी 0 हटाएंarr.filter(x => x !== 0)[10, 12]
केवल अग्रणी 0 हटाएंarr.slice(arr.findIndex(x => x !== 0))[10, 12, 0]
अंतिम 0 हटाएंarr.reverse().slice(...).reverse()[0, 0, 10, 12]
  1. JavaScript Array.shift(): पहला तत्व हटाएं JavaScript Array.shift(): पहला तत्व हटाएं

    Array.prototype.shift() मेथड एरे से पहला तत्व हटाता है, उस तत्व को लौटाता है, और शेष सभी तत्वों के इंडेक्स को 1 से घटा देता है। यह एरे की लंबाई बदल देता है। उदाहरण { const removed = arr.shift(); fillEle.innerHTML = `हटाया गया: ${removed}<br>शेष: ` + arr.join(, ); });

  1. JavaScript Array.reverse(): एरे को उल्टा करें JavaScript Array.reverse(): एरे को उल्टा करें

    Array.prototype.reverse() मेथड एरे के तत्वों के क्रम को स्थानांतरित (in-place) उलट देता है। पहला तत्व अंतिम बन जाता है और अंतिम पहला। यह मूल एरे को बदल देता है और उसी एरे का संदर्भ लौटाता है। उदाहरण { arr.reverse(); fillEle.innerHTML = उल्टा: + arr.join(, ); }); </scrip

  1. जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग

    परिचय डीस्ट्रक्चरिंग असाइनमेंट (ES2015) ऐरे से मानों को अलग-अलग वेरिएबल्स में अनपैक करने का एक संक्षिप्त सिंटैक्स है। यह पठनीयता में सुधार करता है और मैन्युअल इंडेक्स एक्सेस की आवश्यकता को कम करता है। उदाहरण निम्न कोड जावास्क्रिप्ट में ऐरे डीस्ट्रक्चरिंग के लिए है: <!DOCTYPE html> <html