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.