Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

สร้างสีระหว่าง #CCCCCC และ #3B5998 สำหรับเครื่องวัดสีด้วย JavaScript หรือไม่


เราต้องเขียนฟังก์ชันที่สร้างสีสุ่มระหว่างสองสีที่กำหนด มาแก้ปัญหานี้เป็นส่วนๆ กัน −

  • อันดับแรก → เราเขียนฟังก์ชันที่สร้างตัวเลขสุ่มระหว่างตัวเลขสองตัว

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