tem bug no editor, mas da pra passar
A linha do seu laço for contém um erro na segunda parte do teste: ao invés de i = string.length o correto é:
i < string.length.
No seu caso, você criou um loop infinito, por isso que se repetiu tantas vezes.
Estou exatamente com o mesmo problema
F5 resolveu meu problema hahahah
Estou com o mesmo problema. Não consigo avançar!!
Estou com um dúvida em relação a lógica desse problema, em que momento o objeto Map criado no início da função recebeu como propriedade ou caracter da string:
Função (string) {
let Map = {} ;
//Aí vem o for clássico e tal
For (let i = 0; e etc…) {
let letter = string [i]
//Uma variável foi criada para guardar o caráter da //string, e depois vem o If e else
If (Map[letter]) {
Map[letter]. Push (i)
} else {
Map[letter] = [i]
}
}
A dúvida é em que momento o objeto recebeu o como propriedade o caracter da string pois antes do If não deveria ter algo assim ex: Map {} = letter: [ ] ;
Para atribuir a propriedade ao objeto
Não sei onde estou errando, tentei seguir as dicas mas só consigo colocar o i em colchetes amarelos: [i;___]
Escreva uma função que pega uma string e retorna um objeto. O objeto deve ter uma propriedade para cada um dos caracteres da string. Cada propriedade deve armazenar uma array de índices em que os caracteres estão localizados. Por exemplo: mapString(‘boohoo’) retornaria:
{ b: [0], o: [1, 2, 4, 5], h: [3] }
import { word } from ‘grasshopper.wordList’;
console.log(word);
function mapString(string, ___) {
let map = {
___: ___
};
for (let i = 0; i < string.length; i++) {
let letter = string[i];
if (map[letter]) {
map[letter].push(i);
} else {
map[letter] = [
i,
___
];
}
}
return map;
};
let stringMap = mapString(word);
for (let letter in stringMap) {
console.log(letter + ': ’ + stringMap[letter]);
}
Estou a 3 dias tentando resolver e nem as dicas dos meus colegas tem dado certo. Vou continuar tentando.
Let declara uma variável local, então isso não importa pois essa variável só terá validade dentro do bloco de código onde ela está sendo executada.
Aqui está a resposta para quem precisa
import
{
word
}
from
‘grasshopper.wordList’
;
console
.
log
(
word
)
;
function
mapString
(
string
,
)
{
let
map
=
{
:
}
;
for
(
let
i
=
0
;
i
<
string
.
length
;
i
++
)
{
let
letter
=
string
[
i
]
;
if
(
map
[
letter
]
)
{
map
[
letter
]
.
push
(
i
)
;
}
else
{
map
[
letter
]
=
[
i
,
]
;
}
}
return
map
;
}
;
let
stringMap
=
mapString
(
word
)
;
for
(
let
letter
in
stringMap
)
{
console
.
log
(
letter
': ’
stringMap
[
letter
]
)
;
} import
{
word
}
from
‘grasshopper.wordList’
;
console
.
log
(
word
)
;
function
mapString
(
string
,
)
{
let
map
=
{
:
}
;
for
(
let
i
=
0
;
i
<
string
.
length
;
i
++
)
{
let
letter
=
string
[
i
]
;
if
(
map
[
letter
]
)
{
map
[
letter
]
.
push
(
i
)
;
}
else
{
map
[
letter
]
=
[
i
,
]
;
}
}
return
map
;
}
;
let
stringMap
=
mapString
(
word
)
;
for
(
let
letter
in
stringMap
)
{
console
.
log
(
letter
': ’
stringMap
[
letter
]
)
;
}
Pelo que eu entendi, o problema é que o código da um “erro” no local errado, se vc usar o colchetes LARANJAS, mas não tiver dado o comando do RETURN map (por exemplo), ele diz que o erro estava no map[letter] = [i], sendo que o erro, é só pq vc ainda não tinha colocado o return.
Alguém conseguiu resolver essa questão? No meu não está dando certo. Já tentei inúmeras vezes de várias maneiras também
Vc é um gênio, pqp! Estava conseguindo de jeito nenhum