我有一系列类别:this.categories
[ { "id": 6, "name": "categories.ladies_team" }, { "id": 2, "name": "categories.junior_team" }, { "id": 7, "name": "categories.master" }, { "id": 5, "name": "categories.ladies_single" }, { "id": 1, "name": "categories.junior" }, { "id": 3, "name": "categories.men_single" }, { "id": 4, "name": "categories.men_team" } ]
现在我有一个新元素:
const newCategory = {
id: category.id,
name: category.name
};
如果不存在,我想插入它。
我试过了:
if (!this.categories.includes(newCategory)) {
this.categories.push(newCategory);
}
但它不起作用......
我做错了什么?
答案 0 :(得分:8)
不幸的是,除非它是同一个实例,否则includes
将无效。你需要做类似的事情;
if (!this.categories.some((item) => item.id == newCategory.id)) {
this.categories.push(newCategory);
}
答案 1 :(得分:0)
user184994提供的解决方案对我不起作用,它只是获取第一个元素。我这样尝试过,对我有用。
let data = this.categories.find(ob => ob.id === newCategory.id);
if(data === null){
this.categories.push(newCategory);
}