Идея состоит в том, чтобы смешать значения rbg двух цветов и сохранить мой код в чистоте. У rgb не может быть значения больше 255. Я пытаюсь сделать следующее: после того, как значения добавлены, если число больше 255, оставьте его равным 255.
Один способ, который я пробовал, работает, но я чувствую, что есть повторяющийся код. Другой способ, который я пробовал, кажется, на правильном пути, но НЕ работает.
Это работает так
const mixColors = (color1, color2) => {
let red = color1[0] + color2[0];
let green = color1[1] + color2[1];
let blue = color1[2] + color2[2];
if (red > 255) {
red = 255;
}
if (green > 255) {
green = 255;
}
if (blue > 255) {
blue = 255;
} else console.log(`rgb: ${red}, ${green}, ${blue}`);
};
mixColors([235, 45, 0], [100, 27, 47]);
Я пытаюсь упростить код, но это не работает. Как отдельный вопрос, почему этот способ не работает? Значения добавляются правильно, и кажется, что я просто пропущу мое утверждение if.
const mixColors = (color1, color2) => {
const newColor = color1.map((a, i) => a + color2[i]);
if (newColor > 255) {
newColor[i] = 255;
}
console.log(newColor);
return newColor;
};
mixColors([235, 45, 0], [100, 27, 47]);
Является ли первый путь лучшим, и я слишком обдумываю это? Или есть лучший способ?