Mengingat node terakhir dari daftar tertaut tunggal, bagaimana kita menemukan node kepala

Mengingat node terakhir dari daftar tertaut tunggal, bagaimana kita menemukan node kepala?

Katakanlah diberikan JSON:

{ "id": "A", "berikutnya": "B" }, { "id": "B", "berikutnya": "C" } { "id": "C", "berikutnya": "D " } { "id": "D", "berikutnya": null }

Sekarang asumsikan bahwa di atas tidak diurutkan dan kita perlu mencari elemen HEAD 'A'.


person Sunil Gollapinni    schedule 18.04.2018    source sumber


Jawaban (1)


Anda dapat menggunakan Array.prototype.find untuk menemukan elemen yang id bukan nilai next objek lain dalam daftar. Dengan asumsi daftar tertaut tunggal tidak kosong yang valid harus ada satu elemen yang memenuhi kondisi tersebut (kepala). Jika daftarnya kosong head akan diberi nilai undefined.

const json = '[{"id": "A", "next": "B"}, {"id": "B", "next": "C"},{"id": "C", "next": "D"},{"id": "D", "next": null}]';
const objects = JSON.parse(json);

const head = objects.find( a => ! objects.find( b => a.id === b.next ) );

console.log( head );

person Paul    schedule 18.04.2018
comment
Setelah saya memposting posting ini, bahkan saya juga berpikir di baris yang sama di mana simpul kepala tidak akan ada di atribut berikutnya. Terima kasih atas jawaban cepatnya. - person Sunil Gollapinni; 18.04.2018
comment
@Paulpro Bagaimana cara ! bekerja dalam hal ini? Mengapa tidak berfungsi menggunakan objects.forEach(...);? Saya tidak dapat menemukan apa pun tentangnya di Array.prototipe.temukan. - person Bee; 18.04.2018
comment
@Paulpro Untuk beberapa alasan ini membingungkan saya. Apakah Anda yakin ia benar-benar memeriksa satu-satunya elemen yang id bukan nilai next objek lain dalam daftar? Bagi saya sepertinya ia memeriksa elemen pertama hanya karena tidak memiliki id sebagai next di objek mana pun dalam daftar. - person Bee; 18.04.2018
comment
@DavidMichaelHuber Anda benar tentang hal itu, itulah sebabnya jawaban saya dimulai dengan Mengasumsikan daftar yang valid. Saya mungkin harus memperluasnya menjadi Dengan asumsi daftar tertaut tunggal yang valid. Hanya ada satu elemen seperti itu dan harus ada tepat satu, jadi elemen pertama yang memenuhi kondisi sama dengan satu-satunya elemen yang memenuhi kondisi. - person Paul; 18.04.2018
comment
@DavidMichaelHuber Saya menulis ulang jawaban saya. - person Paul; 18.04.2018
comment
@Paulpro Terima kasih banyak telah membereskan masalah ini! Saya benar-benar bingung karena pemahaman saya terhadap penjelasan Anda tidak sesuai dengan pemahaman saya terhadap kode yang Anda berikan. - person Bee; 18.04.2018
comment
Tidak masalah @DavidMichaelHuber. Maaf tentang kebingungan awal. - person Paul; 19.04.2018