Node.js Javascript随机彩色打印

时间:2013-02-04 04:07:37

标签: javascript node.js random colors

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

使用node.js在终端中打印随机颜色 随机生成器工作,但具有句点的东西会弄乱语法并且不会正确打印颜色。

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')

3 个答案:

答案 0 :(得分:1)

您需要稍微更改一下代码

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]);

这是因为colors将原型添加到String类中,所以在JavaScript中你总是可以使用[]对对象执行属性方法,如果可以在每个字符串中使用它,就像这样:

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

答案 1 :(得分:0)

首先,删除所有期间。然后你应该可以做这样的事情:

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

或者:

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

这是有效的,因为a.b等同于a["b"],除了后者,您可以用表达式替换"b"。由于colors模块支持colors.red(someString)someString.red,我们可以简单地将其更改为使用[]语法并在其中放入变量。

答案 2 :(得分:0)

以下代码(与您所拥有的相距不远)从给定列表中打印出随机颜色。

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,但我不知道为什么你需要它来写你所写的。