Comment obtenir la somme des valeurs du Tableau Json dans Angular2(Tapuscrit)
J'ai une Réponse Json
"carts": {
"value": [
{
"Amt": 40
},
{
"Amt": 20.25
},
{
"Amt": 10.30
}
]
}
Je veux obtenir la somme de la valeur de l'Amt champ et la sortie doit être 70.55
Comment obtenir ce à l'aide de caractères d'imprimerie.Je suis nouveau sur le tapuscrit.
Quelqu'un peut-il m'aider avec ça?
Vous devez vous connecter pour publier un commentaire.
La façon correcte d'utiliser du JavaScript réduire fonction (qui est également valable pour les caractères d'imprimerie) serait:
JS:
Noter que si vous souhaitez soutenir IE8, vous devez inclure un polyfill (comme celle de MDN page).
Je suis très en faveur de la Rxjs' Observables répondre, mais puisque personne ne le mentionne : les tableaux Javascript ont un
reduce
fonction, on peut donc l'utiliser en caractères d'imprimerie trop !après @Stefan commentaires :
Fixe erreurs &
mieux de ne pas attribuer de type b, de sorte qu'il sera déduit du contexte et peut-être faire un Tapuscrit erreur lors de la compilation.
value
et donc votreb
et votre valeur initiale (votre premiera
) sont des objets.a
etb
et de laisser la Machine en déduire les types. Autrement, par exemple si les objets dansvalue
ne contiennent pas deAmt
des valeurs à l'aideany
type se cache l'erreur qui en résulte.any
était le "par défaut" si de rien n'était indiqué (et non pas de type gardes ou comme sont utilisés). (sans le noImplicitAny option, qui est la valeur par défaut)let x = 0;
). Si la définition d'une fonction contient la définition des paramètres de rappel, ceux-ci sont également automatiquement déduit (par exemple, les définitions pertinentes pourreduce
estreduce<U>(callbackfn: (previousValue: U, currentValue: T, currentIndex: number, array: T[]) => U, initialValue: U): U;
). typescriptlang.org/docs/handbook/type-inference.html contient de l'information utile à ce sujet.Vous pouvez utiliser observables réduire.
Si vous avez la réponse Http, puis:
Vous pouvez écrire une fonction comme ceci:
e
sera un objet. De plus, si vous vouleze
être un nombre, il serait préférable de type annoter comme un nombre, pas du tout. De cette façon, il y aurait au moins une erreur de compilateur (qui est un aspect pourquoi vous utilisez le fichier d'enregistrement) si vous nous les fournissez avec un objet.C'est la façon la plus simple de le faire.