Ich führe eine forEach() Schleife aus und muss console.log(). Aber ich möchte für jede Iteration eine andere Farbe erhalten. Ich ging durch die Dokumente, konnte aber nichts finden. Gibt es eine Möglichkeit, dasselbe zu erreichen?

let arr = ["a", "ab, "abc"]
arr.forEach(arr, e => {
  console.log(chalk.red(e)) //maybe something like - chalk.randColor()
})
0
8bitIcon 22 Feb. 2020 im 10:34

5 Antworten

Beste Antwort

Sie können so etwas ausprobieren:

// 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
Zuckerberg 22 Feb. 2020 im 08:24

Sie können chalk.rgb mit Randomizer-Wert verwenden, um Ihnen alle Ebenen von Kombinationsfarben zu geben.

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
Raj Kumar 22 Feb. 2020 im 09:01

Diese beiden Funktionen bieten zufällig eine viel größere Auswahl an verschiedenen Farben:

// 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)));
0
tipos 22 Feb. 2020 im 09:24

Sie können ein Array von Zeichenfolgen definieren (alle unterstützten Farben).

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

Holen Sie sich dann in jeder Iteration eine zufällige Farbe und verwenden Sie 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);
1
Abito Prakash 22 Feb. 2020 im 08:38

Wenn Sie randojs.com verwenden, kann die Zufälligkeit einfacher und besser lesbar sein:

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

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

Wenn Sie diesen Code verwenden möchten, stellen Sie einfach sicher, dass er sich im Head-Tag Ihres HTML-Dokuments befindet:

<script src="https://randojs.com/1.0.0.js"></script>
0
Aaron Plocharczyk 22 Feb. 2020 im 15:16