J'ai des chaînes qui ressemblent à celles-ci
aa-bbb-cc-d-ff-eee-gg
aa-bb-ccc-d
aaa-bbbb
Ils sont délimités par le symbole de tiret - .
Maintenant, je veux couper la dernière partie de ceux-ci genre de chaînes et trouvez quelque chose comme
aa-bbb-cc-d-ff-eee-gg à aa-bbb-cc-d // 3 parties supprimées aa-bb-ccc-d à aa-bb // 2 parties supprimées aaa-bbbb à aaa // 1 partie supprimée ainsi de suite et ainsi de suite. Le nombre de portions à supprimer est également défini.
Je suis conscient que je peux simplement parcourir la longueur de ces chaînes en les divisant et en les concaténant comme un fou.
p>
function splitParts(str, parts){
let len = str.split('-').length;
let output = "";
for(let i = 0; i < len - parts; i++){
output += !i ? str.split('-')[i] : "-" + str.split('-')[i];
}
return output;
}
console.log(splitParts("aa-bb-ccc-dd-eee", 1))
Mais je trouve cela douloureusement inélégant et amateur. Y a-t-il un autre moyen de mieux faire cela? De préférence une doublure qui fonctionne avec IE11. Mais d'autres approches qui ne se contentent pas de pirater les parties divisées fonctionneront également.
3 Réponses :
Une fois que vous avez un tableau de caractères alphabétiques, vous pouvez découper la partie souhaitée du tableau (en supprimant les parties inutiles), puis joindre par - s:
const str = "aa-b-ccc-gg-dddd-e";
const arr = str.split('-');
const parts = 1;
const output = arr
.slice(0, arr.length - parts)
.join('-');
console.log(output)
C'est ce que je recherche. Ce n'est pas aussi court que je le voulais vraiment, mais c'est certainement des kilomètres mieux que ce que j'ai imaginé. Merci d'avoir répondu!
Essayez ceci
var abc='sad-ioioiio-sdsd';
var cd=abc.split('-');
cd.splice(-1,1);
console.log(cd.join('-'));
Merci d'avoir répondu! Mais malheureusement, cela ne semble pas fonctionner avec plus d'une partie supprimée
Encore une solution:
function splitParts(str, parts) {
return str
.split('-')
.slice(0, str.split('-').length - parts)
.join('-');
}
Merci pour la réponse. Mais c'est exactement la même chose que celle de @ CertainPerformance.
Qu'entendez-vous par dernière portion ? Je vois que parfois vous supprimez 3 blocs, parfois 2 et aussi 1 partie. Quelle est la logique?
@molamk
La quantité de portions à supprimer est également définie.. Je pense que nous pouvons le considérer comme un paramètre de fonction