Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Ivelinka avatar Ivelinka 24 Точки

Помощ със задача 05. Tseam Account от Arrays - More Exercise JS-Fundamentals

Здравейте,

от сума ти време се мъча с 'Expansion' от Tseam Account - заради него ми дава 50-100. Ще съм благодарна, ако някой помогне.

https://judge.softuni.org/Contests/Practice/Index/1272#4

ето и решението:

function solve(strings) {
 
  let newArr = strings.shift().split(' ')


  for (let i = 0; i < strings.length; i++) {
      let [command, game] = strings[i].split(' ')
      let index = newArr.indexOf(game)

      if (command === 'Install') {
          if(index < 0)
          newArr.push(game)
      } else if (command === 'Uninstall') {
            if(index > 0 && index < newArr.length){
              newArr.splice(index, 1)
          }
      } else if (command === 'Update') {
            if(index > 0 && index < newArr.length){
              newArr.splice(index, 1)
              newArr.push(game)
          }
      } else if (command === 'Expansion') {
          let [newGame, expansion] = game.split('-')
            if(index > 0 && index < newArr.length){  
              newArr.splice(index + 1, 0, `${newGame}:${expansion}`)
          }
      } else if (command === 'Play!') {
          console.log(newArr.join(' '));
          break;
      }
  }
}

Тагове:
0
JavaScript Fundamentals
MartinBG avatar MartinBG 4803 Точки

Има няколко грешки:

1. Променете всички валидации на индекса от 

if(index > 0 && index < newArr.length){

на (0 е валиден индекс в масив, който не е празен):

if(index >= 0 && index < newArr.length){

2. При команда "Expansion" трябва да вземете индекса на играта след като сплитнете стринга на експанжъна:

    } else if (command === 'Expansion') {
      let [newGame, expansion] = game.split('-')
      index = newArr.indexOf(newGame) // update index to game name
      if(index >= 0 && index < newArr.length){
        newArr.splice(index + 1, 0, `${newGame}:${expansion}`)
      }
    }//...

 

1
Ivelinka avatar Ivelinka 24 Точки

Много Ви благодаря :)

Извинете ако Ви досаждам(нямам други въпроси :))) ), но можете ли да ми кажете защо  "Expansion" не работи тук :

function solve(strings) {
 
  let newArr = strings.shift().split(' ')

  for (let i = 0; i < strings.length; i++) {
      let [command, game] = strings[i].split(' ')

      if (command === 'Install') {  
         if (!newArr.includes(game)) {
          newArr.push(game)
         }
      } else if (command === 'Uninstall') {
          if (newArr.includes(game)) {
              if(newArr.indexOf(game) !== undefined){
              newArr.splice(game, 1)
          }
        }
      } else if (command === 'Update') {
          if (newArr.includes(game)) {
            if(newArr.indexOf(game) !== undefined){
              newArr.splice(game, 1)
              newArr.push(game)
          }
        }
      } else if (command === 'Expansion') {
          let [newGame, expansion] = game.split('-')
          index = newArr.indexOf(newGame)
            if (newArr.includes(newGame)) {
            if(newArr.indexOf(newGame) !== undefined){
              newArr.splice(newGame + 1, 0, `${newGame}:${expansion}`)
          }
        }
      } else if (command === 'Play!') {
          console.log(newArr.join(' '));
          break;
      }
  }
}

0
13/02/2023 15:56:15
Axiomatik avatar Axiomatik 2422 Точки

frown

Return value indexOf() =>

The index of the first occurrence of searchString found, or -1 if not found.

 

"Blue Whale".indexOf("Blue"); // returns  0
"Blue Whale".indexOf("Blute"); // returns -1
"Blue Whale".indexOf("Whale", 0); // returns  5
"Blue Whale".indexOf("Whale", 5); // returns  5
"Blue Whale".indexOf("Whale", 7); // returns -1
"Blue Whale".indexOf(""); // returns  0
"Blue Whale".indexOf("", 9); // returns  9
"Blue Whale".indexOf("", 10); // returns 10
"Blue Whale".indexOf("", 11); // returns 10

 

1
Ivelinka avatar Ivelinka 24 Точки

thanks :)

2
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.