Answers:
与JavaScript中的方式相同。
delete myArray[key];
请注意,这会将元素设置为undefined
。
更好地使用该Array.prototype.splice
功能:
const index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
indexOf
a number
吗?
index
在多个位置使用过,并且其中一个(splice
)想要查看数字,否则会出现错误。当前,编译器无法阻止您在此处犯错。
var index = myArray.findIndex(x => x.prop==key.prop);
。
delete myArr[2]
字面上删除的属性 2
的myArr
,这是比也不同myArr[2] = undefined
。这个故事的寓意只是splice
用于此任务,因为这是一种获得预期效果而又不会混淆副作用的安全方法。
如果数组是对象的类型,那么最简单的方法是
let foo_object // Item to remove
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object);
this.foo_objects = this.foo_objects.filter(obj => obj !== foo_object)[0];
deleteById(id: string) { this.data = this.data.filter(d => d.id !== id); }
警告的就一个词,如果IDS并不是唯一的,你会删除所有使用相同的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();
}
您可以splice
在数组上使用该方法删除元素。
例如,如果您有一个名称为数组的数组,请arr
使用以下命令:
arr.splice(2, 1);
因此这里索引为2的元素将作为起点,而参数2将确定要删除的元素数。
如果要删除命名数组的最后一个元素,arr
请执行以下操作:
arr.splice(arr.length-1, 1);
这将返回arr并删除最后一个元素。
例:
var arr = ["orange", "mango", "banana", "sugar", "tea"];
arr.splice(arr.length-1, 1)
console.log(arr); // return ["orange", "mango", "banana", "sugar"]
让部门是一个数组。您要从此数组中删除一个项目。
departments: string[] = [];
removeDepartment(name: string): void {
this.departments = this.departments.filter(item => item != name);
}
这是一个简单的衬里,用于按属性从对象数组中删除对象。
delete this.items[this.items.findIndex(item => item.item_id == item_id)];
要么
this.items = this.items.filter(item => item.item_id !== item.item_id);
使用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;
var index: number = myArray.indexOf(key, 0);