Saya memiliki objek yang terlihat seperti ini:
var obj = {
"objectiveDetailId": 285,
"objectiveId": 29,
"number": 1,
"text": "x",
"subTopics": [{
"subTopicId": 1,
"number": 1
}, {
"subTopicId": 2,
"number": 32
}, {
"subTopicId": 3,
"number": 22
}]
}
var stToDelete = 2;
saya sudah lodash
menginstal aplikasi saya untuk hal-hal lain. Apakah ada cara efisien untuk digunakan lodash
untuk menghapus entri: {"subTopicId":2, "number":32}
dari obj
objek?
Atau adakah cara javascript untuk melakukan ini?
javascript
arrays
object
lodash
Samantha JT Star
sumber
sumber
splice
( developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… ) untuk menghapus item dari daftarresult = _.pull(arr, value)
Ini akan menghapus semua nilai yang cocok dari daftar.Jawaban:
Seperti yang ditunjukkan lyyons dalam komentar, cara yang lebih idiomatis dan mudah untuk melakukan ini adalah menggunakan
_.remove
, seperti iniSelain itu, Anda dapat melewati fungsi predikat yang hasilnya akan digunakan untuk menentukan apakah elemen saat ini harus dihapus atau tidak.
Atau, Anda dapat membuat array baru dengan memfilter yang lama dengan
_.filter
dan menetapkannya ke objek yang sama, seperti iniAtau
sumber
_.filter
versi._.filter
mengembalikan elemen jika predikatnya benar. Implementasi Anda akan mengembalikan semua elemen yang tidak diinginkan dan bukan yang ingin Anda pertahankan_.reject
alih-alih_.filter
menggunakan predikat yang sama. Periksa jawaban saya untuk lebih jelasnya!Cukup gunakan vanilla JS. Anda dapat menggunakan
splice
untuk menghapus elemen:Demo
sumber
Is there an efficient way to use _lodash to delete
Anda bisa melakukannya dengan
_pull
.periksa referensi
sumber
_.pull
gunakan kesetaraan ketat untuk perbandingan, yaitu === . Dua objek polos yang berbeda tidak akan pernah dibandingkan sebagai sama dengan===
(atau oleh==
karena itu). Dengan demikian kode Anda di atas tidak akan pernah menghapus elemen apa pun dari array._.remove
hanya menyiram array.Anda sekarang dapat menggunakan _.reject yang memungkinkan Anda untuk memfilter berdasarkan apa yang perlu Anda singkirkan, alih-alih apa yang perlu Anda pertahankan.
tidak seperti
_.pull
atau_.remove
yang hanya bekerja pada array,._reject
bekerja pada semuaCollection
sumber
Ada empat cara untuk melakukan ini seperti yang saya tahu
Pertama:
Yang kedua adalah:
Dengan cara ini array akan dimutasi.
Yang ketiga adalah:
Yang terakhir adalah:
Saya belajar
lodash
Jawab untuk membuat catatan, sehingga saya bisa menemukannya nanti.
sumber
reject
Selain jawaban @thefourtheye, gunakan predikat alih-alih fungsi anonim tradisional:
ATAU
sumber
naskah dan naskah
sumber
Berikut adalah fungsi lodash sederhana dengan array dan menghapusnya dengan nomor indeks.
sumber