我在TypeScript中创建了一个数组,它有一个属性,我把它用作键。如果我有那把钥匙,我怎么能从里面删除一个项目?
当前回答
下面是一个简单的一行代码,用于按属性从对象数组中删除对象。
delete this.items[this.items.findIndex(item => item.item_id == item_id)];
or
this.items = this.items.filter(item => item.item_id !== item.item_id);
其他回答
在ES6中,你可以使用以下代码:
removeDocument(doc){
this.documents.forEach( (item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
这是我的解决方案:
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();
}
let foo_object; // Itemitem(object here) to remove
this.foo_objects = this.foo_objects.filter(obj => return obj !== foo_object);
下面是一个简单的一行代码,用于按属性从对象数组中删除对象。
delete this.items[this.items.findIndex(item => item.item_id == item_id)];
or
this.items = this.items.filter(item => item.item_id !== item.item_id);
如果你需要从数组中删除一个给定的对象,并且你想确定以下情况,请使用此方法:
列表没有重新初始化 正确更新数组长度
const objWithIdToRemove;
const objIndex = this.objectsArray.findIndex(obj => obj.id === objWithIdToRemove);
if (objIndex > -1) {
this.objectsArray.splice(objIndex, 1);
}
推荐文章
- 从元组/数组值派生联合类型
- 如何在Angular2 ngSwitch语句中使用typescript enum值
- 使用C返回一个数组
- 如何检查IEnumerable是否为空或空?
- 找到合成属性@panelState。请在您的应用程序中包含“BrowserAnimationsModule”或“NoopAnimationsModule”。
- 向对象数组添加属性
- Angular 2+和debounce
- JavaScript在数组中
- Ruby数组到字符串的转换
- 如何分割(块)一个Ruby数组成X元素的部分?
- 在TypeScript箭头函数中指定返回类型
- 如何使用jQuery与TypeScript
- 使用lodash将对象转换为数组
- 从数组中随机选择一个元素
- Angular 2模板中的标签是什么意思?