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

JavaScript में संख्याओं की सरणी को सेट में क्रमबद्ध करने के लिए एल्गोरिथम


मान लीजिए, हमारे पास ऑब्जेक्ट की एक सरणी है जिसमें कुछ इस तरह हैं -

const arr = [
    {'item1': 144},
    {'item2': 0},
    {'item3': 366},
    {'item4': 15},
    {'item6': 366},
    {'item7': 19},
    {'item8': 211},
    {'item9': 121}
];

हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी लेता है और ऑब्जेक्ट को चार समूहों में क्लस्टर करता है अर्थात् -

'XL', 'L', 'M', 'S'

संख्याओं को उनकी सापेक्ष परिमाण के आधार पर इन समूहों में वितरित किया जाना चाहिए।

उदाहरण

इसके लिए कोड होगा -

const arr = [
    {'item1': 144},
    {'item2': 0},
    {'item3': 366},
    {'item4': 15},
    {'item6': 366},
    {'item7': 19},
    {'item8': 211},
    {'item9': 121}
];
const compareWithRange = (rangeArr, num) => {
    for(let i = 0; i < rangeArr.length; i++){
        if(num <= rangeArr[i] && num > rangeArr[i + 1]){
            return i;
        };
    };
    return rangeArr.length - 1;
}
const groupBySize = (arr = []) => {
    const mapping = arr => arr.map(el => el[Object.keys(el)[0]]);
    const max = Math.max(...mapping(arr));
    const range = {
        'XL': max,
        'L': (max * 3) / 4,
        'M': (max / 2),
        'S': (max / 4)
    };
    const legend = ['XL', 'L', 'M', 'S'];
    const res = {};
    arr.forEach(el => {
        const num = el[Object.keys(el)[0]];
        const index = compareWithRange(Object.keys(range).map(key => range[key]), num);
        const size = legend[index];
        if(res.hasOwnProperty(size)){
            res[size].push(Object.keys(el));
        }
        else{
            res[size] = [Object.keys(el)];
        }
    });
    return res;
};
console.log(groupBySize(arr));

आउटपुट

कंसोल में आउटपुट होगा -

{
    M: [ [ 'item1' ], [ 'item9' ] ],
    S: [ [ 'item2' ], [ 'item4' ], [ 'item7' ] ],
    XL: [ [ 'item3' ], [ 'item6' ] ],
    L: [ [ 'item8' ] ]
}
  1. - JavaScript में नंबर्स के ऐरे में वॉवेल्स की जांच करना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो नंबर्स का एक ऐरे लेता है। यदि उस ऐरे में कोई ऐसा नंबर मौजूद है जो ASCII में किसी वॉवेल का कैरेक्टर कोड है, तो हमें उस नंबर को संबंधित वॉवेल में बदलकर नया ऐरे लौटाना चाहिए।उदाहरणनिम्नलिखित कोड है − { for (let i=0, l=arr.length; i

  1. - जावास्क्रिप्ट में संख्याओं की सरणी के लिए प्रसरण की गणना करना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो बढ़ते क्रम में क्रमबद्ध संख्याओं की एक सरणी लेता है। हमारा फ़ंक्शन संख्याओं की सरणी के लिए प्रसरण की गणना करेगा। संख्याओं के एक समूह का प्रसरण उनके माध्य के आधार पर गणना की जाती है।$Mean (M) = ( \sum_{i=0}^{n-1} arr[i])$ / nऔर प्रसरण (V) = $(\sum_{i=0}

  1. - जावास्क्रिप्ट में सरणी को क्रमबद्ध करना और अंतरों का योग ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो पूर्णांकों की एक सरणी लेता है। हमारा फ़ंक्शन सरणी में अवरोही क्रम में लगातार जोड़ों के बीच के अंतरों का योग करेगा।उदाहरण के लिए: यदि सरणी है:[6, 2, 15]तो आउटपुट होना चाहिए:(15 - 6) + (6 - 2) = 13उदाहरणनिम्न कोड देखें:const arr = [6, 2, 15]; const sumDi