Node.js Javascript随机彩色打印

我试图使用颜色的JavaScript模块https://github.com/Marak/colors.js

使用node.js在terminal中打印随机颜色 随机生成器工作,但周期的东西混淆语法,不会正确打印颜色。

var colors = require('colors'); Array.prototype.random = function (length) { return this[Math.floor((Math.random()*length))]; } var color = ['.yellow', '.cyan', '.magenta', '.red', '.green', '.blue', '.rainbow', '.zebra'] var rcolor = color.random(color.length) console.log(rcolor + 'rcolor') 

你需要稍微改变你的代码

 var colors = require('colors'); Array.prototype.random = function (length) { return this[Math.floor((Math.random()*length))]; } var color = ['yellow', 'cyan', 'magenta', 'red', 'green', 'blue', 'rainbow', 'zebra'] var rcolor = color.random(color.length) console.log(("Print in color " + rcolor)[rcolor]); 

这是因为颜色会将原型添加到String类中,所以在JavaScript中,您可以始终使用[]在对象上执行属性方法,如果可以使用,则可以在每个string中使用它:

 console.log("Hello colors!"[rColor]); 

首先,删除所有的时期。 那么你应该可以做这样的事情:

 console.log(colors[randomColor]("Hello, world!")); 

或者:

 console.log("Hello, world!"[randomColor]); 

这是有效的,因为ab相当于a["b"] ,除了后者,你可以用expression式replace"b" 。 由于colors模块支持colors.red(someString)someString.red ,所以我们可以简单地将其改为使用[]语法,并在其中放入一个variables。

以下代码(距离您所在的地方不远)从给定列表中打印随机颜色。

 var colors = require("colors"); Array.prototype.random = function () { return this[Math.floor(Math.random() * this.length)]; }; var colorsList = [".yellow", ".red", ".blue"]; var rColor = colorsList.random(); console.log(colorsList); console.log(rColor); 

它包括colors@0.6.0-1 ,但我不知道为什么你需要它为你写的。