打字稿:
heroes = [
new Hero('Windstorm', 1),
new Hero('Bombasto', 13),
new Hero('Magneta', 15),
new Hero('Tornado', 22)
];
add(val: string) {
if (val && !this.heroes.includes(new Hero(val))) {
alert(this.heroes.includes(new Hero(val)));
this.heroes.push(new Hero(val));
}
}
export class Hero {
constructor(
public name: string,
public id?: number
) { }
}
HTML:
<input #box (keyup)="0" (keyup.enter)="onKey(box.value)">
<button (click) = "add(box.value)">Add</button>
我想创建一个添加按钮,检查该值是否存在于我的数组中(类中的名称Hero
),如果存在,请不要添加它。仅在key数组中不存在键入的字符串时才添加name
。
您不能这样使用,includes()
因为它会在数组中寻找那个确切的对象,因为您刚刚创建了它,所以它永远找不到。您需要按值检查。一种方法是查看some()
英雄中是否有特定名称:
add(val: string) {
// it is not the case that some heroes are named val
if (val && !this.heroes.some(hero => hero.name === val )) {
this.heroes.push(new Hero(val));
}
}
假设每个英雄都应该有一个唯一的名字。如果要允许英雄在数组中使用重复的名称,则需要其他一些属性来定义唯一性,例如唯一ID。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句