Saya memiliki array yang saya buat di TypeScript dan memiliki properti yang saya gunakan sebagai kunci. Jika saya memiliki kunci itu, bagaimana saya bisa menghapus item dari itu?
Saya memiliki array yang saya buat di TypeScript dan memiliki properti yang saya gunakan sebagai kunci. Jika saya memiliki kunci itu, bagaimana saya bisa menghapus item dari itu?
Jawaban:
Cara yang sama seperti yang Anda lakukan dalam JavaScript.
delete myArray[key];
Perhatikan bahwa ini menyetel elemen ke undefined .
Lebih baik menggunakan Array.prototype.splicefungsi:
const index = myArray.indexOf(key, 0);
if (index > -1) {
myArray.splice(index, 1);
}
indexOfpengembalian a number?
indexlebih dari sekali tempat dan salah satu tempat itu ( splice) ingin melihat nomor atau Anda akan mendapatkan kesalahan. Saat ini kompiler tidak dapat mencegah Anda membuat kesalahan di sana.
var index = myArray.findIndex(x => x.prop==key.prop);.
delete myArr[2]secara harfiah menghapus properti 2 dari myArr, yang juga berbeda dari myArr[2] = undefined. Moral dari cerita ini adalah hanya digunakan spliceuntuk tugas ini karena ini adalah cara yang aman untuk mendapatkan efek yang diinginkan tanpa efek samping yang membingungkan.
Jika array adalah tipe objek, maka cara paling sederhana adalah
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); }Hanya satu kata peringatan, jika Id tidak unik Anda akan menghapus semua dengan yang samaid
Dengan ES6 Anda dapat menggunakan kode ini:
removeDocument(doc){
this.documents.forEach( (item, index) => {
if(item === doc) this.documents.splice(index,1);
});
}
Ini solusi saya untuk itu:
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();
}
Anda bisa menggunakan splicemetode pada array untuk menghapus elemen.
misalnya jika Anda memiliki array dengan nama, arrgunakan yang berikut ini:
arr.splice(2, 1);
jadi di sini elemen dengan indeks 2 akan menjadi titik awal dan argumen 2 akan menentukan berapa banyak elemen yang akan dihapus.
Jika Anda ingin menghapus elemen terakhir dari array bernama arrlakukan ini:
arr.splice(arr.length-1, 1);
Ini akan mengembalikan arr dengan elemen terakhir dihapus.
Contoh:
var arr = ["orange", "mango", "banana", "sugar", "tea"];
arr.splice(arr.length-1, 1)
console.log(arr); // return ["orange", "mango", "banana", "sugar"]
biarkan departemen adalah sebuah array. Anda ingin menghapus item dari array ini.
departments: string[] = [];
removeDepartment(name: string): void {
this.departments = this.departments.filter(item => item != name);
}
Berikut ini adalah satu liner sederhana untuk menghapus objek dengan properti dari array objek.
delete this.items[this.items.findIndex(item => item.item_id == item_id)];
atau
this.items = this.items.filter(item => item.item_id !== item.item_id);
Jawab menggunakan operator penyebaran 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;
Satu lagi solusi menggunakan TypeScript:
let updatedArray = [];
for (let el of this.oldArray) {
if (el !== elementToRemove) {
updated.push(el);
}
}
this.oldArray = updated;
Gunakan ini, jika Anda perlu menghapus objek yang diberikan dari array dan Anda ingin memastikan hal berikut:
const objWithIdToRemove;
const objIndex = this.objectsArray.findIndex(obj => obj.id === objWithIdToRemove);
if (objIndex > -1) {
this.objectsArray.splice(objIndex, 1);
}
var index: number = myArray.indexOf(key, 0);