2

有一个很好的Node.js调用模块,chalk它允许应用颜色和文本格式来console.log()运行。

如果我写这样的东西:

console.log("test string substitution with coloring: %s, %s", chalk.red("red"), chalk.magenta("magenta"));    

它将使用字符串替换并正确输出红色和洋红色:

在此处输入图像描述

现在我想做的是制作接受带有替换文字的文本作为第一个参数和可变数量的参数的函数,这些函数应该:

  1. 替换对应的替换文字(就像常规console.log()一样);
  2. 每个传递的参数都应使用红色着色chalk.red()

例如:

function log(text, ...args) {
   // magic here
}

log("This must be %s, and %s as well", "red", "this must be red");

这将给出:

例子

我试过使用console.log(text, chalk.red.apply(null, args)),但它似乎没有产生我想要的东西。

4

1 回答 1

5

您只需要将数组传播到console.log(). 例如,您可以使用以下方式进行内联map()

let chalk = require('chalk')

console.log("test string substitution with coloring: %s and %s",  ...["red", "this must be red"].map(t => chalk.red(t)));    

当然,你也可以让它成为一个函数:

function log(text, ...args){
    console.log(text,  ...args.map(t => chalk.red(t)));    
}
于 2018-12-19T09:14:31.313 回答