Quelqu'un connaît-il une bibliothèque Javascript (par exemple underscore, jQuery, MooTools, etc.) qui offre une méthode pour incrémenter une lettre ?
Je voudrais pouvoir faire quelque chose comme :
"a"++; // would return "b"
Quelqu'un connaît-il une bibliothèque Javascript (par exemple underscore, jQuery, MooTools, etc.) qui offre une méthode pour incrémenter une lettre ?
Je voudrais pouvoir faire quelque chose comme :
"a"++; // would return "b"
Une solution juste pour rire
function nextLetter(str) {
const Alphabet = [
// lower case alphabet
"a", "b", "c",
"d", "e", "f",
"g", "h", "i",
"j", "k", "l",
"m", "n", "o",
"p", "q", "r",
"s", "t", "u",
"v", "w", "x",
"y", "z",
// upper case alphabet
"A", "B", "C",
"D", "E", "F",
"G", "H", "I",
"J", "K", "L",
"M", "N", "O",
"P", "Q", "R",
"S", "T", "U",
"V", "W", "X",
"Y", "Z"
];
const LetterArray = str.split("").map(letter => {
if (Alphabet.includes(letter) === true) {
return Alphabet[Alphabet.indexOf(letter) + 1];
} else {
return " ";
}
});
const Assemble = () => LetterArray.join("").trim();
return Assemble();
}
console.log(nextLetter("hello*3"));
Voici une variation de l'algorithme rot13 que j'ai soumis sur https://stackoverflow.com/a/28490254/881441 :
function rot1(s) {
return s.replace(/[A-Z]/gi, c =>
"BCDEFGHIJKLMNOPQRSTUVWXYZAbcdefghijklmnopqrstuvwxyza"[
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".indexOf(c) ] )
}
Le code d'entrée est en bas et le codec recherché est en haut (c'est-à-dire que le code de sortie est le même que le code d'entrée mais décalé de 1). La fonction ne change que les lettres, c'est-à-dire que si un autre caractère est passé, il sera inchangé par ce codec.
Les réponses de Zar et Nathan sont toutes deux bonnes. Tout le reste me semble trop compliqué.
while (letter != 0)
)Je me suis retrouvé avec ça :
let letter = "a";
let alphabet = "abcdefghijklmnopqrstuvwxyz0";
let nextletter = alphabet.substr(alphabet.indexOf(letter)+1,1);
Ensuite, je peux très simplement ajouter d'autres dimensions :
let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!£$%^&*_0";
function increment(e) {
let letter = e.value;
let alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0";
let next = alphabet.substr(alphabet.indexOf(letter)+1,1);
document.getElementById("result").innerHTML = next;
};
<input type="text" minlength="1" maxlength="1" onchange="increment(this)" placeholder="type letter">
<button>Update</button>
<div id="result"></div>
Faire une fonction avec {a : 'b', b : 'c', etc} dans une fermeture:-
let nextChar = (s => (
"abcdefghijklmopqrstuvwxyza".split('')
.reduce((a,b)=> (s[a]=b, b)), // make the lookup
c=> s[c] // the function returned
))({}); // parameter s, starts empty
usage:-
nextChar('a')
Ajout de majuscules et de chiffres:-
let nextCh = (
(alphabeta, s) => (
[alphabeta, alphabeta.toUpperCase(), "01234567890"]
.forEach(chars => chars.split('')
.reduce((a,b) => (s[a]=b, b))),
c=> s[c]
)
)("abcdefghijklmopqrstuvwxyza", {});
p.s. Dans certaines versions de Javascript, vous pouvez utiliser [...chars]
au lieu de chars.split('')
function charLoop(from, to, callback) {
var i = from.charCodeAt(0);
var to = to.charCodeAt(0);
for (; i <= to; i++) {
callback(String.fromCharCode(i));
}
}
var sequence = "";
charLoop("A", "Z", function (char) {
sequence += char + " ";
});
sequence = sequence.trim();
sequence = sequence.split(" ");
var resseq = sequence;
var res = "";
var prevlet = "";
var nextlet = "";
for (b = 0; b < resseq.length; b++) {
if (prevlet != "") {
prevlet = resseq[b];
}
for (a = 0; a < sequence.length; a++) {
for (j = 1; j < 100; j++) {
if (prevlet == "") {
prevlet = sequence[a];
nextlet = sequence[a + 1];
res += sequence[a] + sequence[a] + 0 + j + " ";
}
else {
if (j < 10) {
res += prevlet + sequence[a] + 0 + j + " ";
}
else {
res += prevlet + sequence[a] + j + " ";
}
}
}
}
}
document.body.innerHTML = res;
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.