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?
arrays
typescript
collections
Tim Almond
sumber
sumber
var index: number = myArray.indexOf(key, 0);
indexOf
pengembalian anumber
?index
lebih 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 properti2
darimyArr
, yang juga berbeda darimyArr[2] = undefined
. Moral dari cerita ini adalah hanya digunakansplice
untuk 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
sumber
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:
sumber
Ini solusi saya untuk itu:
sumber
Anda bisa menggunakan
splice
metode pada array untuk menghapus elemen.misalnya jika Anda memiliki array dengan nama,
arr
gunakan yang berikut ini: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
arr
lakukan ini:Ini akan mengembalikan arr dengan elemen terakhir dihapus.
Contoh:
sumber
biarkan departemen adalah sebuah array. Anda ingin menghapus item dari array ini.
sumber
Berikut ini adalah satu liner sederhana untuk menghapus objek dengan properti dari array objek.
atau
sumber
Jawab menggunakan operator penyebaran TypeScript (...)
sumber
Satu lagi solusi menggunakan TypeScript:
sumber
Gunakan ini, jika Anda perlu menghapus objek yang diberikan dari array dan Anda ingin memastikan hal berikut:
sumber
Hanya ingin menambahkan metode ekstensi untuk sebuah array.
sumber