Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 制作一个对象';s属性在终端中显示为颜色_Javascript_Node.js - Fatal编程技术网

Javascript 制作一个对象';s属性在终端中显示为颜色

Javascript 制作一个对象';s属性在终端中显示为颜色,javascript,node.js,Javascript,Node.js,有可能这样做吗?我想使用npm模块粉笔和颜色来显示属性,这样当我将其JSON.stringify并在终端中显示对象内容时,属性值将显示为我选择的颜色,以便更易于阅读 我的想法是: const arrObjects = [ { color: 'red', fruit: 'apple' }, { color: 'pink', fruit: 'dragonfruit' } ]; const coloredProps = arrObjects.map(f

有可能这样做吗?我想使用npm模块粉笔和颜色来显示属性,这样当我将其JSON.stringify并在终端中显示对象内容时,属性值将显示为我选择的颜色,以便更易于阅读

我的想法是:

const arrObjects = [
  {
    color: 'red',
    fruit: 'apple'
  },
  {
    color: 'pink',
    fruit: 'dragonfruit'
  }
];

const coloredProps = arrObjects.map(fruit => {
  Object.defineProperty(fruit, chalk.yellow.bold('family'), {
    value: 'healthy',
    writeable: true,
    configurable: true,
    enumerable: true
  });
});

console.log(JSON.stringify(arrObjects, null, 2));
因此,它将以黄色显示新属性

这看起来像是我已经做到了,但问题是在终端中,由于JSON.stringify,它将属性显示为unicode。有没有办法通过这个考试

以下是我的结果:


您是否尝试过将ansi实用程序用于粉笔


不要将ANSI转义放在对象的值或键中。这是混合显示和数据,这只会给你带来问题

JSON编码器通常使用终端仿真器无法识别的
\uxxx
表示形式对不可打印或UTF-8字符进行转义(您需要由
\x1b
\u001b
表示的实际字符,而不是转义表示形式)

您的代码实际上是打印出
console.log('\\u001b')
——请注意双斜杠。终端仿真器无法识别这一点


你试过以下方法吗

var util = require('util');
console.log(util.inspect(myObject, {colors:true}));

可能必须拆分所有行,分别记录每行,并解析属性值,以确定它是否需要颜色免责声明:我是粉笔项目的维护者。