Bonjour à tous !
Voila je rencontre un petit problème avec mon code.
~Voici mon code : ~
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
var firstarray = []; // je déclare mon tableau
var secondarray = []; //deuxième tableau
function palindrome(mot){ //fonction
if (mot.length % 2 === 0){ /*si divise par 2, impossible d'avoir un
mot palindrome */
console.log('Votre mot n\'est pas un palindrome.')
}
for(var i = 0; i = (mot.length/2)-2.5 ; i++ ){ /* ma var i, jusqu'à
wavelength/2 -2.5, ça marche pour kayak et pour lol donc pour tous
les autres nombres */
firstarray.push(mot[i]); //entrer valeurs des lettres dans le tableau
console.log(firstarray) //Faire apparaître le tableau
}
for(var j = (mot.length/2) - 0.5 ; j = mot.length - 1 ; i--){
secondarray.push(mot[j]);
console.log(secondarray)
}
if(firstarray === secondarray){
console.log('Votre mot est un palindrome.');
}
else{
console.log('Votre mot n\'est pas un palindrome.');
}
}
document.write(palindrome('kayak'))
</script>
</body>
</html>
Je souhaiterais un code me permettant de déterminer, à l'aide d'une fonction, si un mot est ou non palindrome.
Mon code ne marche absolument pas, j'obtiens une boucle infini. Ma page ne se charge pas. :(
Salut
si divise par 2, impossible d'avoir un mot palindrome
, faux, SELLES est un palindrome et est divisible par 2
Voilà un petit cadeau
function palindrome(str) {
for (var i = 0; i < str.length / 2; i++) {
if (str[i] !== str[str.length - i - 1]) {
return false;
}
}
return true;
}
un string est une chaine de caractères, tu peux la décomposer et l'inverser.
function palindrome(mot){
return mot === mot.split('').reverse().join('');
}
EDIT : corrigé suite au commentaire de @Balsakup.
En fait en programmation on utilise des objets.
Dans un objet mot tu peux lui appliquer des méthodes (fonctions/procédures).
mot étant un chaîne de caractères tu peux lui appliquer split.
Split prend en paramètre une chaîne par exemple un chaîne vide ( split('') )
Ainsi, split('') te retourne un tableau qui casse ta chaîne par lettres.
ex:
var mot = 'MOT':
var tab;
tab = mot.split('');
// ici tab vaut ['M','O','T'];
var palinTab = tab.reverse();
// reverse() permet de retourner le tableau
// palinTab = ['T','O','M'];
var palindrome = palinTab.join();
// join permet de joindre chaque elements d'un tab sous forme de chaine, ici TOM
// puis on compare si palindrome == mot palindrome sinon, non
Bonjour,
1/ Il manque pas mal de ; à la fin des console.log...
2/ La deuxième condition d'un "for" ne pas être seulement =. Il faut qu'elle soit < ou > ou >= ou <=.
@prbaron, bon exemple, par contre faut remplacer join()
par join('')
, sinon il va concaténer avec des virgules
@Balsakup Je ne comprends pas bien ton code, je m'excuse, je débute en programmation.
@prbaron Je ne comprends pas très bien non plus ce que vous faites, l'utilité des trois objets.