Софтуерно Инженерство
Loading...
+ Нов въпрос
martinski avatar martinski 68 Точки

JavaScript Basic[Exercises] 12.Multiple Values for a Key

Здравейте колеги. На въпросната задача успях да напиша код ,който изкарва само 33т.в Judge-a.Изкрава един излишен ред(undifined), който не мога да разбера откъде се получава.Ето и кода Цък .
 Ще се радвам на малко помощ от ваша страна :)

Тагове:
alecc avatar alecc 12 Точки

Здравей,

Не съм напълно сигурен къде точно ти е грешката и може и да те подведа.
Затова ще ти дам моето решение и се надявам да ти помогне.
 

2
M0MCHIL avatar M0MCHIL 1 Точки

Здрасти alecc,

Може ли да дадеш малко разяснения по този ред: dict[key] = dict[key] || [];

Благодаря.

0
alecc avatar alecc 12 Точки

Здрасти,

Просто при добавяне на стойност за дадения ключ проверявам дали има стойност и ако няма да сложи празен масив. Предположих,че undefined || [] ще е същото като undefined || 0 както Наков го обясни в лекцията.

1
M0MCHIL avatar M0MCHIL 1 Точки

А ако има стойност, ще я замени с новата стойност при следващата итерация?

0
mustafov avatar mustafov 75 Точки

Здравей колега, 

разгледах ти кога и мисля че знам къде ти е проблема.  Когато влезе в тук if (key === lastKey)  веднага може да сложеш  isFound = true, след това if (result[key] in result) трябва да ти е if (key in result) дефакто дали key се съдъжа в results и ако се съдържа  result[key] += '\n'+value, а в другия случай ако ключът още го няма в result го слагаш result[key] = value.

Поздрави, Севгин.

1
martinski avatar martinski 68 Точки

Благодаря за разясненията. Пообъркал съм логиката,но се получи след корекциите:)

0
19/06/2016 22:06:58
alpepe avatar alpepe 0 Точки

Ще пиша тук за да не отвярам нова тема. На мен също ми да ва 33т. Имам същият проблем като твоя, но не мога да ви видя кодовете, от линковете които сте постнали.

Ето ми и кода!

function myFunction(text) {
    let array=[]
    for(let i=0; i<text.length-1; i++) {
        let tempArr = text[i].split(' ')
        if(tempArr[0]==undefined){
        array[tempArr[0]]=tempArr[1]
        }
        else{
        array[tempArr[0]]=array[tempArr[0]]+"\n"+tempArr[1]
        }
        
    }
    let key= text[text.length-1]
    if(array[key]==undefined)
        console.log('None')
    else{
    console.log(array[key])
    }
}

0
alpepe avatar alpepe 0 Точки

Благодаря за кода, малко по разлиучно решение от мойто, но дава 100т.

0