【问题标题】:How to hide some keys on your object when using console.log使用 console.log 时如何隐藏对象上的一些键
【发布时间】:2014-12-22 08:39:15
【问题描述】:

好的,我对 javascript 和 node 还很陌生,所以这个问题对你来说可能听起来很愚蠢,但我真的需要一个启发。无论如何,我有一个从我的猫鼬那里得到的东西。举个例子吧

Model.findOne({name:'John'}).exec(function (err, data){
 console.log(data);
});

所以,当我 console.loged data 结果是

{ _id: 613614asdfa6115, 名称:“约翰”, __v: 0 }

然后,我有一个愚蠢的想法,为该对象添加另一个键,因此,就像普通的 javascript 菜鸟一样,我向数据添加另一个键:

data.hello = '嗨'

但是,当我尝试 console.log data 时,结果仍然相同。我很困惑。所以我使用lodash clone 来克隆对象;令我惊讶的是,第一个 console.log 没有得到很多隐藏键。

这是克隆对象的结果:http://pastebin.com/zE71Fg2H

我的问题是:他们是如何从 console.log 中隐藏一些键的?

【问题讨论】:

  • 真的!??!无故投反对票?!我不值得解释吗?
  • 这些“隐藏键”只是标记为不可枚举或来自对象原型的键。就是这样。
  • 好的,谢谢!现在我知道我对javascript还有多少不了解。但说真的,我的问题真的需要反对吗?这是一个诚实的问题。
  • 我认为你的问题被否决了,因为投反对票的人认为你的问题不需要回答或者只是无知。抱歉,Stack Overflow 社区有时可能很苛刻。
  • 是的,数字。仅仅因为他们有足够的声誉并不意味着他们可以在没有事先解释/通知的情况下投反对票。我的意思是,当他/她得到的只是反对票时,OP 怎么知道他做错了什么?如果这是一个重复的问题,至少我得到了该问题的链接。无论如何,非常感谢您开导我好心的先生。如果你能发布你的答案,我很乐意接受。

标签: javascript node.js mongoose javascript-objects console.log


【解决方案1】:

试试这个 -

Model.findOne({name:'John'}).exec(function (err, data){
 data = data.toObject();
 data.hello = 'hi'
 console.log(data);
});

我希望它会起作用。 For more information use this link.

【讨论】:

  • 非常有见地,但这并不能真正回答我的问题。但我会赞成。谢谢!
  • 保存文档后mongoose返回JSON对象。如果你想修改这些属性,你需要将 JSON 对象转换为 javascript 对象。你可以使用 toObject 方法来做到这一点。
猜你喜欢
  • 2015-02-12
  • 1970-01-01
  • 2021-03-31
  • 2014-01-31
  • 2019-10-22
  • 1970-01-01
  • 2015-03-28
  • 1970-01-01
  • 2015-11-01
相关资源
最近更新 更多