Ajuda em Javascript
14/09/2022
0
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
Posts
14/09/2022
Nomad
kross tem que ser como uma string.. faça um teste para verificar por favor :)
20/09/2022
Kleber Wilcke
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" ) }
20/09/2022
Kleber Wilcke
// 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" ) }
21/09/2022
Sickodev
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 !!!
21/09/2022
Sickodev
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 .
Clique aqui para fazer login e interagir na Comunidade :)