Javascript 如何迭代对象并将所有空值替换为字符串
我一直在尝试运行一个对象,并将每个空值都更改为字符串。 首先,我想检查是否得到了对象键的值。 我就是这么做的:Javascript 如何迭代对象并将所有空值替换为字符串,javascript,node.js,Javascript,Node.js,我一直在尝试运行一个对象,并将每个空值都更改为字符串。 首先,我想检查是否得到了对象键的值。 我就是这么做的: let item = await Item.findOne({itemNumber:'5722'}); for (const [key, value] of Object.entries(item)) { console.log(key,value); } 出于某种原因,我打印的唯一键的值是:isNew、errors、\u doc、$init。 而item对象有更
let item = await Item.findOne({itemNumber:'5722'});
for (const [key, value] of Object.entries(item)) {
console.log(key,value);
}
出于某种原因,我打印的唯一键的值是:isNew、errors、\u doc、$init。
而item对象有更多的键
任何提示?您可以使用
将mongoose文档转换为普通对象。toObject
然后循环
let item = await Item.findOne({itemNumber:'5722'});
for (const [key, value] of Object.entries(item.toObject)) {
console.log(key,value);
}
或
使用for/in循环迭代对象属性。e、 g
for (p in item) {
console.log(p + " = " item[p]);
}
这还将包括从原型链继承的任何可移植的内容
为item对象添加一个示例。请为item对象添加架构。
object.entries()
将只获取对象项的“可枚举”字符串键。如果item
的某些属性的enumberable
设置为false,那么它们将不会出现在for..of looptryfor(Object.entries({…item})的const[key,value]){
中,而且您应该只使用从item.toObject()
@sabbir.alam获取的键值对,因为我的item对象的架构太长(170个字段)所以我不会复制它。但是我可以向你保证,我从我的查询中得到了正确的对象,如果我键入“item.itemNumber”,我可以得到正确的值。看起来for循环在第五个字段之后停止
for (p in item) {
console.log(p + " = " item[p]);
}