Javascript 如果密钥为空,如何从JSON中删除密钥
我试图从js对象中删除这个键,如果这个键里面没有值的话 我尝试过使用delete foundBrief.Contents.url,但没有成功。我这样做是为了alexa flash简报技巧。如果重定向url为空,则会引发错误。在这种情况下,如果该url为空,则必须删除该属性url ContentSchema:Javascript 如果密钥为空,如何从JSON中删除密钥,javascript,node.js,json,express,mongoose,Javascript,Node.js,Json,Express,Mongoose,我试图从js对象中删除这个键,如果这个键里面没有值的话 我尝试过使用delete foundBrief.Contents.url,但没有成功。我这样做是为了alexa flash简报技巧。如果重定向url为空,则会引发错误。在这种情况下,如果该url为空,则必须删除该属性url ContentSchema: var contentSchema = new mongoose.Schema({ _id : { type: String, default: uuid.v1}, dat
var contentSchema = new mongoose.Schema({
_id : { type: String, default: uuid.v1},
date: Date,
titleText: String,
mainText: String,
Url: String,
author:{
id: {
type: mongoose.Schema.Types.ObjectId,
ref: "User"
},
username: String
}
},{
versionKey: false
});
要使用路由在url上显示json对象,请执行以下操作:
router.get("/:id/abcd.json", function(req, res) {
Brief.findById(req.params.id)
.populate("contents")
.exec(function(err, foundBrief) {
if (err) {
console.log(err);
} else {
console.log(foundBrief.contents);
//[{"uid":"00a3b980-4ccc-11e9-ab44-dd6a45baec41","date":"2019-03-22T02:30:00.000Z","title":"title test","main":"content text","Url":""}]
foundBrief.contents.forEach(function(element) {
if(element.Url === ""){
delete element.Url;
}
});
}
});
});
有这个吗
[
{
uid: "00a3b980-4ccc-11e9-ab44-dd6a45baec41",
date: "2019-03-22T02:30:00.000Z",
title: "title test",
main: "content text",
Url: ""
}
];
要这个吗
[
{
uid: "00a3b980-4ccc-11e9-ab44-dd6a45baec41",
date: "2019-03-22T02:30:00.000Z",
title: "title test",
main: "content text"
}
];
foundBrief.contents.forEach(…)
应该可以工作。你能创建一个最小的片段来重现这个问题吗?不鼓励只使用代码的答案。请添加一些解释,说明这是如何解决问题的。
for(let obj of foundBrief.contents){
Object.keys(obj).forEach(function(key){
if(obj[key] === ''){
delete obj[key];
}
})
}