gpt4 book ai didi

javascript - 如何在 js/node.js 中声明空变量/对象时停止显示容器

转载 作者:行者123 更新时间:2023-11-29 23:15:52 27 4
gpt4 key购买 nike

const readline = require('readline');

x = [];

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

rl.question('What do you think of Node.js? ', (answer) => {
// TODO: Log the answer in a database
rl.close();
console.log(answer);
x.push(answer);
});

console.log(x);

输出:

What do you think of Node.js? []

我想声明一个不显示“[]”的空数组,这样它只会说:“您如何看待 Node.js?”

最佳答案

一个快速的方法就是检查数组的长度并传递你想要显示的内容

//if it has any length display array as normal
//otherwise just pass empty string
console.log( x.length? x : "" );

另一种选择是您可以只join() 数组元素,它会为空数组提供空字符串,为非空数组提供逗号分隔列表

console.log(x.join())

最后一个选择是使用自定义检查功能。 nodejs环境下的console.log最终调用util.inspect ,或类似的 native 函数,用于对象。因此,您可以添加 custom inspect function这允许您返回要为该对象显示的内容的字符串。

所以你再次测试数组的长度,在空数组的情况下返回一个空字符串,或者返回 util.inspect 方法原本返回的内容

Array.prototype[util.inspect.custom] = function(){
if(!this.length){
return "";
}
//passe customInspect:false so the custom inspect method wont be called again
return util.inspect(this,{customInspect:false});
}

当然,此方法会影响所有正在记录或检查的数组,因此请仅在需要时使用它。

关于javascript - 如何在 js/node.js 中声明空变量/对象时停止显示容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52798287/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com