हमें एक फ़ंक्शन लिखना है जो दो दिए गए रंगों के बीच एक यादृच्छिक रंग उत्पन्न करता है। आइए इस समस्या को भागों में बांटें -
-
पहला → हम एक फ़ंक्शन लिखते हैं जो दो दी गई संख्याओं के बीच एक यादृच्छिक संख्या उत्पन्न करता है।
-
दूसरा → यादृच्छिक रंग निर्माण के लिए हेक्स स्केल का उपयोग करने के बजाय, हम हेक्स को 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