Javascript search through object -
i'm unfortunately still not quite familiar objects in js , programming bit phd in psychology, don't have great programming skills. i've managed create nice object captures data structure pretty well:
var items = { anamnese_akut: [{ id: 1, question: 'haben sie die beschwerden zum ersten mal?', answer: 'ja, etwas ist noch nie passiert.' }, { id: 2, question: 'haben sie in den letzten wochen unbeabsichtigt gewicht verloren?', answer: 'nein, bestimmt nicht.' }], anamnese_allgemein: [{ id: 3, question: 'sind bei ihnen vorerkrankungen bekannt?', answer: 'eigentlich nicht, nein.' }, { id: 4, question: 'wurden sie schon mal operiert?', answer: 'ich hatte eine blinddarmoperation als kind, und in den letzten zwei jahren dreimal eine ausschabung nach fehlgeburten.' }] };
i want search input variable contains 1 of these 4 questions, can come both categories. i've managed unnested object, using code here: js search in object values, cannot work , have no idea how adapt object categories anamnese_akut
, anamnese_allgemein
.
how can adapt search this? after comparing input questions want have index, can give output of corresponding answer found question.
i think there way of structuring data here. can avoid arrays , use referencing object properties. advantage is, can access values without "search" in terms of iterations object's property hash.
note: readability purposes, have used reduced subset of data in examples.
example - base on index number
var anamnese_akut = { q: { 1:'haben sie die beschwerden zum ersten mal?', 2: 'haben sie in den letzten wochen unbeabsichtigt gewicht verloren?', }, a: { 1:'ja, etwas ist noch nie passiert.', 2:'nein, bestimmt nicht.' }, }; console.log(anamnese_akut.q['1']); console.log(anamnese_akut.a['1']);
with example base data on index number (1, 2, 3...) , access questions , answers number.
advantage: less error prone, because index short , can stored number.
disadvantage: index number must known within overall context of q , a.
example b - access id different structure
var questions = { anamnese_akut: { 1:'haben sie die beschwerden zum ersten mal?', 2:'haben sie in den letzten wochen unbeabsichtigt gewicht verloren?', }, }; var answers = { anamnese_akut: { 1: 'ja, etwas ist noch nie passiert.', 2: 'nein, bestimmt nicht.', }, }; console.log(questions.anamnese_akut['1']); console.log(answers.anamnese_akut['1']);
advantages: decoupled questions , answers, access index required (as in example a)
disadvantage: more work on structural design level, since there little bit more redundancy here (since have 2 objects anamnese_akut entry).
example c - access question
var anamnese_akut = { 'haben sie die beschwerden zum ersten mal?' : 'ja, etwas ist noch nie passiert.', }; console.log(anamnese_akut['haben sie die beschwerden zum ersten mal?']);
advantages: answer immediatly returned
disadvantage: question string needs strictly given in object or access fails , returns undefined.
personally go example b since allows me split question , answer data contexts (which may become important, depending on application use case) , still allows me access 1 given index number.
Comments
Post a Comment