我在TypeScript中创建了一个数组,它有一个属性,我把它用作键。如果我有那把钥匙,我怎么能从里面删除一个项目?
当前回答
function myFunction(ID){
let index = this.myArray.findIndex(d => d.ID === ID); //find index in your array
console.log('index==',index);
if (index > -1) {
console.log('remaving at',index);
this.myArray.splice(index, 1);//remove element from array
}
}
注意:你的数组必须有一个名为ID…否则将返回-1,表示未找到
其他回答
使用TypeScript扩展运算符(…)
// Your key
const key = 'two';
// Your array
const arr = [
'one',
'two',
'three'
];
// Get either the index or -1
const index = arr.indexOf(key); // returns 0
// Despite a real index, or -1, use spread operator and Array.prototype.slice()
const newArray = (index > -1) ? [
...arr.slice(0, index),
...arr.slice(index + 1)
] : arr;
Let departments是一个数组。您要从此数组中删除一项。
departments: string[] = [];
removeDepartment(name: string): void {
this.departments = this.departments.filter(item => item != name);
}
_.pull(array,'a');
使用lib lodash https://lodash.com/docs/4.17.15#pull complelte代码:
import _ from 'lodash';
const allTagList = ['a','b','b']
_.pull(allTagList, b);
console.log(allTagList) // result: ['a']
PS: Lodash提供了大量的操作符,建议使用它来简化您的代码。https://lodash.com
这是我的解决方案:
onDelete(id: number) {
this.service.delete(id).then(() => {
let index = this.documents.findIndex(d => d.id === id); //find index in your array
this.documents.splice(index, 1);//remove element from array
});
event.stopPropagation();
}
如果你需要从数组中删除一个给定的对象,并且你想确定以下情况,请使用此方法:
列表没有重新初始化 正确更新数组长度
const objWithIdToRemove;
const objIndex = this.objectsArray.findIndex(obj => obj.id === objWithIdToRemove);
if (objIndex > -1) {
this.objectsArray.splice(objIndex, 1);
}