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 モジュールは、たとえば と をサポートしているので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 に答える