Получите случайный цвет внутри forEach () мелом. js - PullRequest
0 голосов
/ 22 февраля 2020

Я бегу forEach() l oop, и мне нужно console.log(). Но я хочу получить разные цвета для каждой итерации. Я пошел через документы, но ничего не смог найти. Есть ли способ добиться того же?

let arr = ["a", "ab, "abc"]
arr.forEach(arr, e => {
  console.log(chalk.red(e)) //maybe something like - chalk.randColor()
})

Ответы [ 5 ]

1 голос
/ 22 февраля 2020

Вы можете попробовать что-то вроде этого:

// Create an array of possible colors
const color = ['red', 'green', 'blue', 'magenta', 'cyan', 'gray'];
let arr = ["a", "ab", "abc"]
arr.forEach(arr, e => {
  // and get a random color name from the array
  // and call the function on it
  console.log(chalk[color[Math.floor(Math.random() * color.length)]](e))
})
1 голос
/ 22 февраля 2020

Вы можете определить массив строк (все поддерживаемые цвета)

const colors = ['red', 'blue', 'green'];

Затем в каждой итерации получить случайный цвет и использовать chalk[color]

let arr = ["a", "ab", "abc"];
const getRandomColor = (str) => {
  const colors = ["red", "blue", "green"];
  console.log(chalk[colors[Math.floor(Math.random() * colors.length)]](str));
};

arr.forEach(getRandomColor);
0 голосов
/ 22 февраля 2020

Если вы используете rando js .com , случайность может быть проще и более читабельной, например:

var array = ["a", "ab", "abc"], colors = ['red', 'green', 'blue', 'magenta', 'cyan', 'gray'];

array.forEach((item, i) => console.log(chalk[rando(colors).value](i)));

Если вы хотите использовать этот код, просто сделайте уверен, что это в заголовке вашего документа html:

<script src="https://randojs.com/1.0.0.js"></script>
0 голосов
/ 22 февраля 2020

вы можете использовать chalk.rgb со значением рандомизатора для предоставления вам всех уровней комбинированных цветов.

let arr = ["a", "ab, "abc"]
const rdClr = () => Math.floor(Math.random() * 255);
const randomClor = str => chalk.rgb(rdClr(), rdClr(), rdClr())(str);
arr.forEach(arr, e => {
  console.log(randomClor(arr + '%s'));
});
0 голосов
/ 22 февраля 2020

Эти две функции обеспечивают гораздо больший диапазон разных цветов случайным образом:

// Using chalk.hex()
const randColorHex = (msg) => {
  chalk.hex('#' + (Math.random() * 0xFFFFFF << 0).toString(16))(msg);
}

// Using chalk.rgb()
const randColorRgb = (msg) => {
  const rand = () => Math.floor(Math.random() * 255);
  chalk.rgb(rand(), rand(), rand())(msg);
}

// Usage
let arr = ["a", "ab", "abc"];

arr.forEach(item => console.log(randColorHex(item)));
arr.forEach(item => console.log(randColorRgb(item)));
...