如何使用Angular中的打字稿基于某些属性删除元素 [英] How to remove an element based on some property using typescript in angular

查看:43
本文介绍了如何使用Angular中的打字稿基于某些属性删除元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想根据其元素的任何属性将其从数组中删除,这些属性可以是其键,名称或电子邮件,也可以是其他任何东西.

I want to remove an element from an array based on its any property that can be its key, name or email or something else it can be.

HTML

<tr *ngFor="let person of persons;" (click)="remove(person.key)">
  <td>{{person.key}}</td>
  <td>{{person.name}}</td>
  <td>{{person.email}}</td>
</tr>

打字稿

persons = [
{ key: 1, name: 'Mr.sohail', email: 'sohail@tee.com' },
{ key: 2, name: 'Mr.Farhan', email: 'farhan@tee.com' },
{ key: 3, name: 'Mr.Fida', email: 'fida@tee.com' },
{ key: 4, name: 'Mr.Liaqat', email: 'liaqat@tee.com' },
{ key: 5, name: 'Mr.Abdullah', email: 'abdullah@tee.com' },
{ key: 6, name: 'Mr.Ubaid', email: 'ubaid@tee.com' },
{ key: 7, name: 'Mr.Wasif', email: 'wasif@tee.com' }
]

删除方法以根据键属性删除元素但它会根据索引删除.

remove method to remove an element based on key property but it removes based on index.

remove(key) {
console.log(key);
this.data.persons.splice(key, 1);
}

请让我知道需要进行的更改

Please let me know the required changes to apply

谢谢

推荐答案

 removeByPropertyName(propertyName: string, value: any): void {
    let indexToRemove = persons.findIndex(p => p[propertyName] === value);
    if (indexToRemove !== -1)
        this.remove(indexToRemove);
    else
        console.log('Not found!');
 }

要通过密钥删除,可以将方法用作

To remove by key, you can use the method as

removeByPropertyName('key', 10);

要按名称删除,

removeByPropertyName('name', 'somename');

这篇关于如何使用Angular中的打字稿基于某些属性删除元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆