Il y a Le code ci-dessous fonctionne bien mais à la recherche de la meilleure approche. p> Quatre trimestre I.E. Q1, Q2, Q3 et Q4 CODE> pour chaque Année fiscale (FY) Code>. Je veux imprimer:
fy18 q1 code> pour entrée 2018.1 code> li>
fy18 q2 code> pour entrée 2018.2 code> li>
fy18 q3 code> pour entrée 2018.3 code> li>
fy18 q4 code> pour entrée 2018.4 code> li>
ul>
5 Réponses :
Il y a plusieurs façons d'y parvenir. Il s'agirait d'utiliser une expression régulière:
p>
var arr = ['2018.1', '2018.2', '2018.3', '2018.4'];
arr.forEach(function(input) {
var year = Math.floor(input);
var q = Math.round((input - year) * 10);
var output = `FY${year.toString().slice(-2)} Q${q}`;
console.log(output);
})Vous pouvez remplacer la chaîne avec les pièces recherchées.
p>
var input = '2018.1',
output = input.replace(/^..(..).(.)$/, 'FY$1 Q$2');
console.log(output); Vous pouvez utiliser p> .substr code> et .split code> avec des lignes de destruction et de modèle pour former votre chaîne: const GetFormattedQuarter = quater =>
(([yr, q]) => `FY${yr.substr(-2)} Q${q}`)(quater.split('.'))
console.log(GetFormattedQuarter("2018.1")); // FY18 Q1
console.log(GetFormattedQuarter("2018.2")); // FY18 Q2
console.log(GetFormattedQuarter("2018.3")); // FY18 Q3
console.log(GetFormattedQuarter("2018.4")); // FY18 Q4
Vous pouvez utiliser un moment.js 'pour analyser et formater comme si vous le souhaitez
p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
Coller de près votre code d'origine, vous pouvez facilement réduire la quantité de fonctionnalités similaires avec A pour boucle.
Par exemple
Je ne vois aucun code dans la question.