回答:
JavaScriptの場合と同じです。
delete myArray[key];
これにより要素がに設定されることに注意してくださいundefined
。
Array.prototype.splice
関数を使用する方が良い:
const index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
indexOf
リターンnumber
?
index
既に複数の場所で使用しており、それらの場所(splice
)の1つが番号を表示しようとしている場合、エラーが発生します。現在、コンパイラーはそこでミスを防ぐことができません。
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); }
。1ワードの警告、IDが一意でない場合は、同じものをすべて削除します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);
}
オブジェクトの配列からプロパティによってオブジェクトを削除するための簡単な1つのライナーを次に示します。
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);