Ajuda em Javascript

14/09/2022

0

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

Responder

Posts

14/09/2022

Nomad

if(resposta == 'kross')

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

20/09/2022

Kleber Wilcke

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"
)
}
Responder

20/09/2022

Kleber Wilcke

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"
)
}
Responder

21/09/2022

Sickodev

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 !!!
Responder

21/09/2022

Sickodev

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 .
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar