Je reçois des données de manière dynamique avec Python / Django et transmettez-la à mon modèle. Là, j'utilise JavaScript pour manipuler les données p>
Cela signifie que dans mon modèle, j'ai un tableau JavaScript, chaque chiffre représentant un mois comme: P>
ou plus: p>
ou plus: p>
Selon le tableau ci-dessus, je voudrais peupler les positions manquantes avec des zéros. Les positions manquantes signifient que la matrice doit avoir une longueur de 12 à la fin. Chaque mois devrait être à la position précise. Par exemple: p>
ou si p>
ou si p>
J'ai essayé beaucoup de choses. Quelqu'un peut-il me dire dans la bonne direction ou a une idée? Très apprécié. P> mois = [1,2,3,4] code> p>
mois = [4,5,6] code> p>
mois = [6,7,8] code> p>
mois = [1,2,3,4,0,0,0,0,0,0,0,0,0] code> p>
mois = [0,0,0,4,5,6,0,0,0,0,0,0,0] code> p>
mois = [0,0,0,0,0,6,7,8,0,0,0,0,0] code> p>
épissage code> semblait une bonne méthode mais n'a pas fonctionné comme prévu. Je ne pouvais pas le résoudre à l'aide de array.frillez code>. J'ai également essayé de créer un nouveau tableau avec 12 zéros, puis de repousser les valeurs de l'autre tableau, mais cela n'a pas fonctionné. p>
3 Réponses :
faire une liste des 12 mois p>
alors votre variable p>
et par un simple si / sinon dans A pour p>
retournera p>
true_months = [1,2,3,4,5,6,7,8,9,10,11,12] code> (ou true_months = liste (plage (1, 13)) code>) p>
mois = [4,5,6] code> p>
[x si x en mois 0% 0 pour x dans true_months] code> p>
[0, 0, 0, 4, 5, 6, 0, 0, 0, 0, 0, 0] code> p>
Merci beaucoup pour votre réponse! Ça marche parfaitement!
Vous pouvez prendre un nouveau tableau et le remplir avec les éléments de l'index, si trouvé ou avec zéro.
p>
const fill = m => Array.from({ length: 12 }, (_, i) => +m.includes(i + 1) && i + 1);
console.log(...fill([1, 2, 3, 4]));
console.log(...fill([4, 5, 6]));
console.log(...fill([6, 7, 8]));Merci beaucoup!! Fonctionne parfaitement
Vous pouvez mapper mapper un tableau vide de 12 éléments, vérifiant si le numéro de mois est présent dans votre tableau source:
p>
const padZeroes = arr => [...Array(12)].map((item,index) => arr.includes(index+1) ? index+1 : 0); console.log(padZeroes([5,6,7,8]));
J'ai accepté cette réponse parce que j'ai fini par utiliser et c'est juste une ligne de code. Merci à tous ceux qui ont partagé leurs idées!
Il n'a pas fonctionné B> - Postez le code qui n'a pas fonctionné avec le comportement d'erreur / inattendu.