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

पहले मान के आधार पर ऐरे को विभाजित करें - JavaScript


मान लीजिए हमारे पास नंबर्स के ऐरे का ऐरे है जैसे:

const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];

प्रत्येक सब-ऐरे में सख्ती से दो एलिमेंट्स होने तय हैं। हमें एक फंक्शन लिखना है जो एक नया ऐरे बनाता है जहां समान पहले मान वाले सब-ऐरे के सभी दूसरे एलिमेंट्स एक साथ ग्रुप हो जाएं।

इसलिए, उपरोक्त ऐरे के लिए, आउटपुट इस तरह दिखना चाहिए:

const output = [
    [45, 34, 49],
    [34, 67],
    [78, 65]
];

हम Array.prototype.reduce() मेथड का उपयोग कर सकते हैं जो Map() की मदद से आवश्यक ऐरे का निर्माण करता है।

उदाहरण

निम्नलिखित कोड है:

const arr = [[1, 45], [1, 34], [1, 49], [2, 34], [4, 78], [2, 67], [4, 65]];
const constructSimilarArray = (arr = []) => {
    const creds = arr.reduce((acc, val) => {
        const { map, res } = acc;
        if(!map.has(val[0])){
            map.set(val[0], res.push([val[1]]) - 1);
        }else{
            res[map.get(val[0])].push(val[1]);
        };
        return { map, res };
    }, {
        map: new Map(),
        res: []
    });
    return creds.res;
};
console.log(constructSimilarArray(arr));

आउटपुट

यह कंसोल में निम्नलिखित आउटपुट देगा:

[ [ 45, 34, 49 ], [ 34, 67 ], [ 78, 65 ] ]

  1. जावास्क्रिप्ट Array.prototype.map() फंक्शन जावास्क्रिप्ट Array.prototype.map() फंक्शन

    जावास्क्रिप्ट का Array.prototype.map() फंक्शन कॉल किए गए फंक्शन के परिणामों के साथ एक नया एरे बनाने के लिए उपयोग किया जाता है। सिंटैक्स इस प्रकार है: arr.map(function callback(currentValue[, index[, array]])) उदाहरण 1 - Math.abs <!DOCTYPE html> <html> <body> <h2>डेमो हेडि

  1. जावास्क्रिप्ट में Object.keys().map() बनाम Array.map() जावास्क्रिप्ट में Object.keys().map() बनाम Array.map()

    जावास्क्रिप्ट में Object.keys().map() और Array.map() दिखाने का कोड निम्नलिखित है - उदाहरण <!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>

  1. जावास्क्रिप्ट में वैल्यू के आधार पर ऑब्जेक्ट्स को ग्रुप कैसे करें? जावास्क्रिप्ट में वैल्यू के आधार पर ऑब्जेक्ट्स को ग्रुप कैसे करें?

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