如何使用Angular中的打字稿基于某些属性删除元素 [英] How to remove an element based on some property using typescript in angular
本文介绍了如何使用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屋!
查看全文