हमें एक फ़ंक्शन लिखना है जो दो दिए गए रंगों के बीच एक यादृच्छिक रंग उत्पन्न करता है। आइए इस समस्या को भागों में बांटें -
-
पहला → हम एक फ़ंक्शन लिखते हैं जो दो दी गई संख्याओं के बीच एक यादृच्छिक संख्या उत्पन्न करता है।
-
दूसरा → यादृच्छिक रंग निर्माण के लिए हेक्स स्केल का उपयोग करने के बजाय, हम हेक्स को 0 से 15 दशमलव पैमाने पर मैप करेंगे और इसके बजाय इसका उपयोग करेंगे।
-
अंत में → हम दिए गए किसी भी रंग के तार पर लूप करते हैं और एक यादृच्छिक रंग उत्पन्न करते हैं।
उदाहरण
const randomBetween = (a, b) => { const max = Math.max(a, b); const min = Math.min(a, b); return Math.floor(Math.random() * (max - min) + min); }; const randomColor = (firstColor, secondColor) => { first = firstColor.toUpperCase().substring(1, secondColor.length); second = secondColor.toUpperCase().substring(1, firstColor.length); const scale = '0123456789ABCDEF'; let color = '#'; for(let i = 0; i < first.length && i < second.length; i++ ){ const random = randomBetween(scale.indexOf(first[i]), scale.indexOf(second[i])); color += scale[random]; }; return color; }; console.log(randomColor('#34324a', '#42342c')); console.log(randomColor('#f43250', '#12342c')); console.log(randomColor('#34324a', '#47942c')); console.log(randomColor('#ffffff', '#000000'));
कंसोल में संभावित आउटपुट निम्नलिखित है -
नोट - यह कई संभावित आउटपुट में से एक है क्योंकि आउटपुट हर बार रैंडम होता है।
आउटपुट
#33332A #C23328 #36822B #35102A