我的问题是,当我显示具有所有属性的联系人但由于某种原因而不起作用时,我试图删除._id。
app.get("/contacts", (req,res)=>{
var id = res.params._id;
contacts.find({}).toArray((err,contactsArray)=>{
if(err){
console.log("Error: "+err);
}else{
var arraySinId = contactsArray.map((t)=>{
t.delete(id);
});
res.send(arraySinId);
}
});
答案 0 :(得分:2)
您可以将数组重新映射到具有所需属性的新数组。在下面查看代码。
const contactsArray = [
{ id: 1, foo: 'foo'},
{ id: 2, foo: 'bar'},
{ id: 3, foo: 'baz'},
{ id: 4, foo: 'foobar'}
]
const arraySinId = contactsArray.map((t) => ({
foo: t.foo,
}));
console.log(arraySinId)
更新
如果必须删除的道具是动态的,则可以使用实用程序功能omit
,该功能可以在Ramda或Lodash等库中找到,也可以自行使用。
const dynamicPropToRemove = 'id'
const contactsArray = [
{ id: 1, foo: 'foo'},
{ id: 2, foo: 'bar'},
{ id: 3, foo: 'baz'},
{ id: 4, foo: 'foobar'}
]
const arraySinId = contactsArray.map(R.omit([ dynamicPropToRemove ]));
console.log(arraySinId)
<script src="//cdnjs.cloudflare.com/ajax/libs/ramda/0.25.0/ramda.min.js"></script>