Angular2 +,检查数组中是否存在具有类定义的值

斯诺拉克斯

打字稿:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击angular2模板div检查元素是否具有类

来自分类Dev

检查输入控件在angular2中是否具有某种类型的vallidator

来自分类Dev

Angular2数组对象

来自分类Dev

angular2中的WebSockets

来自分类Dev

在Angular2中获取

来自分类Dev

在angular2中Renavigate()

来自分类Dev

angular2中的WebSockets

来自分类Dev

angular2中的评论

来自分类Dev

Angular2检查元素的类

来自分类Dev

jQuery-检查数组中的2个元素是否具有相同的类

来自分类Dev

Swift:检查同一类中的2个对象是否具有不同的值?

来自分类Dev

Angular.js检查数组中是否存在传递值

来自分类Dev

如何检查2D数组中是否存在所有请求的值?

来自分类Dev

在angular2中检查权限

来自分类Dev

Angular2路由:是否存在链接参数数组具有多个元素的条件?

来自分类Dev

在angular2中过滤数组

来自分类Dev

在Angular2中创建动态数组

来自分类Dev

angular2 中的组数组

来自分类Dev

在Angular2中显示JSON值

来自分类Dev

angular2 中的 HTML 输入值

来自分类Dev

Angular 2 / Typescript - 如何检查对象数组以查看属性是否具有相同的值?

来自分类Dev

检查Angular2和Sails中是否存在用户名

来自分类Dev

Angular2 多选检查多重绑定

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

Angular2检测模板视图中的元素是否具有类

来自分类Dev

Angular2类未公开函数

来自分类Dev

Angular2:ngFor和条件类

来自分类Dev

服务类未注入Angular2