Професионална програма
Loading...
willystyle avatar willystyle 2417 Точки
Best Answer

Валидацията на индексите при Delete и Put не е правилна, (100 точки идват ако просто оправиш тази на Put)

изчили индекса и го провери дали е рамките на масива, понеже в момента например искаш да добавиш дума на края на изречението, съответно подаваш index = count + 1, и там при твоята проверка е undefined и не го позволява.

 

https://pastebin.com/t5M4C325

0
valllentinnaa avatar valllentinnaa 9 Точки

Разбрах си грешката, благодаря :)

1
mr.ivanov avatar mr.ivanov 17 Точки

И аз имам проблем с тия индекси. Опитах какво ли не но ми дава 66. Оправих грешката на Put и Delete сега дава 83 точки. 

Какво не е наред защо се получава така ?

Това е първото решение дава 66 точки.  https://pastebin.com/u7iTmbS1 

А това е второто подобрено решение дава 83 

https://pastebin.com/fsNvCRh4

Защо не работят тия индекси не мога да разбера. Цял ден я мъча тая задача, а други подобни ги реших.

0
valllentinnaa avatar valllentinnaa 9 Точки

Проверката ти при 'Swap', не беше много коректна, допълних я с проверка дали индекса ти е различен от -1, аз лично съм използвала метода includes(). И в двата случая дава работи и също така дава 100/100. Ето ти и единия от преработените варианти на твоето решение: https://pastebin.com/ZfN9Rb9w. Когато индексът ти е равен на -1, означава, че елементът не съществува, но -1 не е falsy стойност и дава true, затова е важно да си проверяваш.

0
28/06/2019 13:49:28
willystyle avatar willystyle 2417 Точки

Ти си с друг проблем, индексите ти са добре проверени, но... ред 16 при swap:

if (questToSolve.indexOf(word1) && questToSolve.indexOf(word2)) {

го замени с:

if (questToSolve.includes(word1) && questToSolve.includes(word2)) {

така, защо твоя вариант не работи, не знам запознат ли си с falsy values? Ако не намери indexOf връша -1 (което е truthy value) a ako намери на нулев индекс връща 0 (което пък е falsy), затова ползвай includes, иначе ако искаш да е с indexOf трябва да е:

if (questToSolve.indexOf(word1) >= 0 && questToSolve.indexOf(word2) >=0) {

0
mr.ivanov avatar mr.ivanov 17 Точки

Да чак сега забелязох че там не правя никаква проверка защото връщат -1. Благодаря 

0