เราต้องเขียนฟังก์ชันที่สร้างสีสุ่มระหว่างสองสีที่กำหนด มาแก้ปัญหานี้เป็นส่วนๆ กัน −
-
อันดับแรก → เราเขียนฟังก์ชันที่สร้างตัวเลขสุ่มระหว่างตัวเลขสองตัว
-
ประการที่สอง → แทนที่จะใช้มาตราส่วนฐานสิบหกสำหรับการสร้างสีแบบสุ่ม เราจะจับคู่ฐานสิบหกกับสเกลทศนิยม 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