1

我正在尝试使用颜色 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')
4

3 回答 3

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

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

console.log("Hello colors!"[rColor]);
于 2013-02-04T04:18:43.723 回答
0

首先,删除所有句点。然后你应该能够做这样的事情:

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

或者:

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

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

于 2013-02-04T04:15:51.983 回答
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,但我不知道你为什么需要它来写你写的东西。

于 2013-02-04T04:16:53.717 回答