Je suis une sorte de nouveau à la programmation et je regarde des mots de code pour pratiquer. Donc, il existe une tâche où vous devez prendre une chaîne donnée et ne pas tourner une lettre majuscule et faites cela pour chaque lettre et faites-en une arraie. Comme une vague mexicaine (c'est en fait le nom de la tâche).
comme ceci: p>
Si une chaîne est 'marko', une matrice doit ressembler à Tout va bien jusqu'à 2 ou plus des mêmes personnages. Par exemple, si une chaîne est 'AAA', le tableau est Voici mon code: p> appelez la fonction avec une chaîne avec des caractères uniques tels que "ABC def 'et ça marchera. Après cela, appelez-le avec des personnages répétés comme «ABC ABC» et le problème se produira. P> J'aimerais savoir ce que je fais mal. Merci! P> p> ['Marko', 'Marko ',' Marko ',' Marko ',' Marko ']] Code>. P> ['AAA', 'AAA', 'AAA'] code>. Il remplace toujours le premier caractère de ce type. P>
5 Réponses :
p> minuscule.replace (minuscule [i], minuscule.charat (i) .Touppercase ()) code> remplacera toujours le première occurrence du caractère A code> C'est pourquoi vous obtenez la même sortie. Vous devez simplement mettre en place un moyen de remplacer la bonne occurrence p> function wave(string){
let result = [];
let lowerCase = string.toLowerCase();
for(let i = 0; i < string.length; i++){
if(lowerCase[i] !== ' '){
const arr = lowerCase.split(""); //create an array from the string
arr[i] = lowerCase.charAt(i).toUpperCase(); //change the right occurency
result.push(arr.join("")); //transform the array to a string
} else {
continue;
}
}
return result;
}
console.log(wave("aAa"));
Merci karim. Pourriez-vous expliquer pourquoi il remplace toujours la première instance d'un personnage au lieu de Charat (i) et s'il vous plaît dites-moi comment définir cela sur une réponse acceptée? Je suis super nouveau ici.
Bonjour, vérifiez la documentation, cela vous explique comment fonctionner la méthode et il doit y avoir un bouton pour définir la réponse acceptée :) développeur.mozilla.org/en-us/docs/web/javascript/reference/...
function wave(string){
let result = [];
let lowerCase = string.toLowerCase();
for(let i = 0; i < string.length; i++){
let item = lowerCase.slice(0,i) + lowerCase.charAt(i).toUpperCase() + lowerCase.slice(i+1);
result.push(item);
}
return result;
}
If you want to handle some space character or things like that, it would be very simple to deduplicate the final result.
Si le modèle code> code> (premier paramètre) du avec Vous pouvez trouver plus d'informations ici:
https://developer.mozilla.org/ EN-US / DOCS / Web / JavaScript / Référence / Global_Objects / String / Remplacez P> string.prototype.replace () code> est une chaîne, seule la première occurrence sera remplacée. P >
minuscule.chaplace (minuscule [i], minuscule.charat (i) .Touppercase ()) code> Vous pouvez simplement remplacer la première occurrence. P>
Merci, c'est ce que je cherchais - une explication!
Vous pouvez créer une fonction code> code> pour remplacer le caractère à un point spécifique de la chaîne.
function replaceAt(string, char, index) {
return string.substr(0, index) + char + string.substr(index + 1);
}
function wave(string) {
string = string.toLowerCase();
return string.split('').map((char, index) => replaceAt(string, char.toUpperCase(), index));
}
const result = wave("MARKO"); // ["Marko", "mArko", "maRko", "marKo", "markO"]
essayer d'utiliser string.pototype.substring. pour scinder la sous-chaîne à l'index spécifié par itération et remplacer le caractère d'index actuel en majuscule.
p>
const str = 'aaa';
const wave = function *(str) {
for (let i = 0; i < str.length; i++) {
yield str.substring(0, i)
+ str.charAt(i).toUpperCase()
+ str.substring(i + 1);
}
};
const res = [...wave(str)];
console.log(res);