मुझे एक एपीआई से JSON डेटा प्राप्त हो रहा है और मुझे इसे अलग-अलग सरणियों में मैप करने की आवश्यकता है।

इस प्रारूप में डेटा प्राप्त किया जा रहा है:

[
  {"MONTH":9,"YEAR":2015,"SUMAMT":0},
  {"MONTH":10,"YEAR":2015,"SUMAMT":11446.5},
  {"MONTH":11,"YEAR":2015,"SUMAMT":539252}
]

और मुझे इसे बदलने की जरूरत है

Array1 = [Sep-2015,Oct-2015,Nov-2015]
Array2 = [0,11446.5,539252]

यह वह कोड है जिसे मैं कोशिश कर रहा हूं, लेकिन मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए।

यह डेटा प्राप्त करने वाली सेवा है:


    getSalesTrend(): Observable < any > {
      return this.http.get<any>(`${this.apiPath}/salesTrend`)
        .pipe(
          map(data => {
            this.date = new Date(data.YEAR, data.MONTH, 1);
            return this.date.formatDate(this.date, "MMM-YYYY");
          })
        )
    }

यह डेटा की सदस्यता लेने वाला घटक है:

salesTrendData: any[]
ngOnInit() {
    this.adminService.getSalesTrend()
      .subscribe(salesTrendData => {
        this.salesTrendData = salesTrendData
        console.log(this.salesTrendData);
      })
  }

कंसोल.लॉग मुझे देना चाहिए: Array1 और Array2

किसी भी तरह की सहायता का स्वागत किया जाएगा। मैं इस मंच के लिए बिल्कुल नया हूं, कृपया मुझे बताएं कि क्या आपको अधिक जानकारी चाहिए और अग्रिम धन्यवाद :)

0
Aviral Goyal 30 अप्रैल 2019, 11:32

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले, आपको महीने के मूल्यों को मैप करने के लिए एक वस्तु की आवश्यकता होगी। फिर, आप Array.map()< का उपयोग करें। /a> वांछित परिणाम प्राप्त करने के लिए, जैसा कि नीचे दिए गए डेमो में दिखाया गया है।

const months = {
   '1': 'Jan',
    '2':'Feb',
    '3':'Mar',
    '4':'Apr',
    '5':'May',
    '6':'Jun',
    '7':'Jul',
    '8':'Aug',
    '9':'Sep',
    '10':'Oct',
    '11':'Nov',
    '13':'Dec'
}

const data = [{"MONTH":9,"YEAR":2015,"SUMAMT":0}, {"MONTH":10,"YEAR":2015,"SUMAMT":11446.5},{"MONTH":11,"YEAR":2015,"SUMAMT":539252}];

const Array1 = data.map(obj => {
  const month = months[obj.MONTH]
  return `${month}-${obj.YEAR}`;
})

const Array2 = data.map(obj => obj.SUMAMT)
console.log(Array1);
console.log(Array2);

यहां बताया गया है कि हम इसे आपके कोड में कैसे एकीकृत कर सकते हैं। मैपिंग करने के बाद, हम अभी भी दोनों को एक ऑब्जेक्ट में स्टोर करते हैं, और फिर ऑब्जेक्ट को आपके कंपोनेंट में वापस कर देते हैं।

getSalesTrend(): Observable<any> {
  return this.http.get<any>(`${this.apiPath}/salesTrend`)
    .pipe(
      map(data => {
        const months = {'1': 'Jan', '2':'Feb', '3':'Mar', '4':'Apr', '5':'May', '6':'Jun', '7':'Jul', '8':'Aug', '9':'Sep', '10':'Oct', '11':'Nov', '13':'Dec'};
        const Array1 = data.map(obj => {
          const month = months[obj.MONTH]
          return `${month}-${obj.YEAR}`;
        });
        const Array2 = data.map(obj => obj.SUMAMT);
        return {Array1, Array2};
      })
    )
  }
}
1
wentjun 30 अप्रैल 2019, 08:50