Ajuda em Javascript

JavaScript

HTML5

JavaScript Web

14/09/2022

Eae tudo bem ?
Estou com uma problema no meu código e não estou a saber como resolver.

Já tentei de todas as formas possíveis, até comecei achar que essa não era a maneira correta para fazer o que eu queria.

Código :

// Objetos

var mota_1 = {
Marca: "Kawasaki",
Modelo: "Kx 450",
Tipo: "Cross",
Cor: "Verde limão",
Motor: "2 Tempos",
TanqueCapacidade: "1.64 gal",
}

var mota_2 = {
Marca: "Yamaha",
Modelo: "Yfz 450R",
Tipo: "Atv",
Cor: "Azul",
Motor: "4 Tempos",
TanqueCapacidade: "2.6 gal",
}

var mota_3 = {
Marca: "Suzuki",
Modelo: "Ltr 450",
Tipo: "Atv",
Cor: "Branca",
Motor: "4 Tempos",
TanqueCapacidade: "2.6 gal",
}

var mota_4 = {
Marca: "Yamaha",
Modelo: "Crf 450R",
Tipo: "Cross",
Cor: "Vermelha",
Motor: "4 Tempos",
TanqueCapacidade: "1.6 gal",
}

// Wordlists
var kross = [
"Cross",
"CROSS",
"cross",
"CRoss",
"croSS",
"CRoSS",
"crOss"
];

var Hatv = [
"Atv",
"atv",
"aTv",
"atV",
"ATV",
"AtV",
];

// Variaveis
var pergunta = window.prompt("Qual é a mota que vai querer ? Cross ou Atv ?")
var resposta = pergunta

// Desenvolvimento

if(resposta == kross){

document.write(
mota_1.Marca,
mota_1.Modelo,
"",
mota_4.Marca,
mota_4.Modelo,
)
}else{
document.write(
"Desculpa, ocorreu um erro, tente mais tarde"
)
}

Eu quero que se a pessoa for a responder algo que coincide com os nomes que estão declarados na minha wordlist, ele execute o document.write() .

Só que ele só me retorna o else(), então isso quer dizer que ele não está a reconhecer os valores dos objetos .

Como é que posso fazer para resolver isso ?
Sickodev

Sickodev

Curtidas 0

Respostas

Nomad

Nomad

14/09/2022

if(resposta == 'kross')

kross tem que ser como uma string.. faça um teste para verificar por favor :)
GOSTEI 0
Kleber Wilcke

Kleber Wilcke

14/09/2022

Como é que posso fazer para resolver isso ?

Você colocou no if resposta = kross, mas não basta isso, voce tem que percorrer todos os valores dentro de kross, senão não vai.
var resposta = pergunta

// Desenvolvimento
var vaiQuererCross = false;
for (var i in kross){            //percorre todo o array Kross com as wordlists

if(resposta == kross[i]){    //vai fazer esse laço várias vezes percorrendo cada wordList e comparando se é a resposta que queremos
  vaiQuererCross = true

document.write(
mota_1.Marca,
mota_1.Modelo,
"",
mota_4.Marca,
mota_4.Modelo,

)
}
}if (vaiQuererCross == false){  //if colocado fora do laço para não repetir a mensagem várias vezes
document.write(
"Desculpa, ocorreu um erro, tente mais tarde"
)
}
GOSTEI 0
Kleber Wilcke

Kleber Wilcke

14/09/2022

não copiei o código completo desculpa, aqui está:

// Objetos

var mota_1 = {
Marca: "Kawasaki",
Modelo: "Kx 450",
Tipo: "Cross",
Cor: "Verde limão",
Motor: "2 Tempos",
TanqueCapacidade: "1.64 gal",
}

var mota_2 = {
Marca: "Yamaha",
Modelo: "Yfz 450R",
Tipo: "Atv",
Cor: "Azul",
Motor: "4 Tempos",
TanqueCapacidade: "2.6 gal",
}

var mota_3 = {
Marca: "Suzuki",
Modelo: "Ltr 450",
Tipo: "Atv",
Cor: "Branca",
Motor: "4 Tempos",
TanqueCapacidade: "2.6 gal",
}

var mota_4 = {
Marca: "Yamaha",
Modelo: "Crf 450R",
Tipo: "Cross",
Cor: "Vermelha",
Motor: "4 Tempos",
TanqueCapacidade: "1.6 gal",
}

// Wordlists
var kross = [
"Cross",
"CROSS",
"cross",
"CRoss",
"croSS",
"CRoSS",
"crOss"
];

var Hatv = [
"Atv",
"atv",
"aTv",
"atV",
"ATV",
"AtV",
];

// Variaveis
var pergunta = window.prompt("Qual é a mota que vai querer ? Cross ou Atv ?")
var resposta = pergunta

// Desenvolvimento
var vaiQuererCross = false;
for (var i in kross){            

if(resposta == kross[i]){
  vaiQuererCross = true

document.write(
mota_1.Marca,
mota_1.Modelo,
"",
mota_4.Marca,
mota_4.Modelo,

)
}
}if (vaiQuererCross == false){
document.write(
"Desculpa, ocorreu um erro, tente mais tarde"
)
}
GOSTEI 0
Sickodev

Sickodev

14/09/2022

if(resposta == 'kross')

kross tem que ser como uma string.. faça um teste para verificar por favor :)


Mano depois de eu ter lido a tua resposta, tentei de uma forma diferente, ao invés de eu criar uma variavel para wordlist, eu peguei em todos os nomes e adicionei como strings no if

// Variaveis
var pergunta = window.prompt("Qual é a mota que vai querer ? Cross ou Atv ?")
var resposta = pergunta

// Desenvolvimento

if(resposta == "Cross",
"CROSS',
"cross",
"CRoss",
"croSS",
"CRoSS",
"crOss"){

document.write(
mota_1.Marca,
mota_1.Modelo,
"",
mota_4.Marca,
mota_4.Modelo,
)
}else{
document.write(
"Desculpa, ocorreu um erro, tente mais tarde"
)
}


só que fica a executar o document.write().

E se para por o nome do objecto como string, não vai funcionar, por que vai deixar de ser interpretado como objecto e vai passar para string .

Obrigado pela ajuda !!!
GOSTEI 0
Sickodev

Sickodev

14/09/2022

Como é que posso fazer para resolver isso ?

Você colocou no if resposta = kross, mas não basta isso, voce tem que percorrer todos os valores dentro de kross, senão não vai.
var resposta = pergunta

// Desenvolvimento
var vaiQuererCross = false;
for (var i in kross){            //percorre todo o array Kross com as wordlists

if(resposta == kross[i]){    //vai fazer esse laço várias vezes percorrendo cada wordList e comparando se é a resposta que queremos
  vaiQuererCross = true

document.write(
mota_1.Marca,
mota_1.Modelo,
"",
mota_4.Marca,
mota_4.Modelo,

)
}
}if (vaiQuererCross == false){  //if colocado fora do laço para não repetir a mensagem várias vezes
document.write(
"Desculpa, ocorreu um erro, tente mais tarde"
)
}


Obrigado mano, funcionou .
GOSTEI 0
POSTAR