TypeScript - איך לעבור דרך אובייקט מקונן ב-JavaScript?
{
"ret": [],
"retUnderAgt": [],
"sum": {
"services": [
{
"serviceCode": "BET",
"serviceName": "Bet Games Lottery ",
"txnTypes": [
{
"txnTypeName": "Sale",
"amount": "0",
"txnTypeCode": "SALE",
"amt": "0.0"
},
{
"txnTypeName": "Winning",
"amount": "0",
"txnTypeCode": "WIN_CLAIM",
"amt": "0.0"
}
]
}]
}
}
אני מנסה לעשות לולאה על sum ככה ----------->>>
for(let i in activityDetailedReportData.sum){
this.finalTotal.push("Total");
for(let j of i.services){
for(let k of j.txnTypes){
this.finalTotal.push(k.amount)
}
}
}
אני מנסה להוסיף את כל הסכומים בכל סוגי העסקאות למערך אחד שנקרא finalTotal.
אני לא יודע איך לבצע לולאה על txnTypes בתוך services. תגיד לי איך אני צריך לעשות את זה?
ערכתי את השאלה כנדרש בבקשה עזרו לי בזה
תשובה #1
אין צורך בלולאת החיצונית בקוד שלך, מכיוון שאתה רק רוצה להשתמש במאפיין היחיד activityDetailedReportData.sum.services:
this.finalTotal.push("Total");
for (let j of activityDetailedReportData.sum.services) {
for (let k of j.txnTypes) {
this.finalTotal.push(k.amount);
}
}
דוגמה חיה (בשימוש ב-finalTotal במקום ב-this.finalTotal):
const activityDetailedReportData = {
"ret": [],
"retUnderAgt": [],
"sum": {
"services": [
{
"serviceCode": "BET",
"serviceName": "Bet Games Lottery ",
"txnTypes": [
{
"txnTypeName": "Sale",
"amount": "0",
"txnTypeCode": "SALE",
"amt": "0.0"
},
{
"txnTypeName": "Winning",
"amount": "0",
"txnTypeCode": "WIN_CLAIM",
"amt": "0.0"
}
]
}]
}
};
const finalTotal =[];
finalTotal.push("Total");
for (let j of activityDetailedReportData.sum.services) {
for (let k of j.txnTypes) {
finalTotal.push(k.amount);
}
}
console.log(finalTotal);למען האמת, זה כנראה יכול להרוויח מפרוק מבנה:
this.finalTotal.push("Total");
for (let {txnTypes} of activityDetailedReportData.sum.services) {
for (let {amount} of txnTypes) {
this.finalTotal.push(amount);
}
}
דוגמה חיה:
const activityDetailedReportData = {
"ret": [],
"retUnderAgt": [],
"sum": {
"services": [
{
"serviceCode": "BET",
"serviceName": "Bet Games Lottery ",
"txnTypes": [
{
"txnTypeName": "Sale",
"amount": "0",
"txnTypeCode": "SALE",
"amt": "0.0"
},
{
"txnTypeName": "Winning",
"amount": "0",
"txnTypeCode": "WIN_CLAIM",
"amt": "0.0"
}
]
}]
}
};
const finalTotal =[];
finalTotal.push("Total");
for (let {txnTypes} of activityDetailedReportData.sum.services) {
for (let {amount} of txnTypes) {
finalTotal.push(amount);
}
}
console.log(finalTotal);