用户可以添加语言。语言存储为userschema中类型为teach或learn的数组。我可以通过使用push将语言添加到languages.teach [],但是如何删除一个?
语言对象示例
AlertConfig
UserScema.js
let language = {
"code": FR
"level": 1
};
LanguagesController.js
var UserSchema = new Schema({
email: {
value: {
type: String,
lowercase: true,
//unique: true,
},
token: String,
verified: Boolean,
},
password: {
type: String,
},
phone: {
countryCode: {
type: String,
//required:true,
unique: true,
},
number: {
type: String,
required: true
},
code: String,
verified: {
type: Boolean,
default: false
},
},
jwt: String,
profile: {
username: String,
firstname: String,
lastname: String,
dob: String,
level: Number,
location: String,
image: String,
introduction: String,
},
languages: {
teach: [],
learn: [],
}
},
{
timestamps: {createdAt: 'created_at', updatedAt: 'updated_at'}
});
我尝试使用.remove但是我得到了一个user.languages.teach [i] .remove不是一个函数。
答案 0 :(得分:1)
也许像......
...
if (type === "teach") {
var index = user.lanauges.teach.findIndex(function(item){
return item.code === languge.code;
});
user.languages.teach.splice(index, 1);
....
答案 1 :(得分:1)
是.remove
数组上没有任何内容。您可以使用.filter
删除不需要的数组元素。
它将被用作:
if (type === "teach") {
user.languages.teach = user.languages.teach.filter( o => o.code !== language.code)
}
这将使用上面给出的条件从数组中删除所有元素。