मेरा एपीआई एक सरणी देता है:
[
[
"valueA",
9.036124999999998
],
[
"valueB",
49.4075
]
]
मेरे एपीआई कॉल के बाद मैं कुछ रिपोर्ट के लिए डेटा सेट कर रहा हूँ:
try {
const response = await fetch(url);
const data = await response.json();
const reports = [
{
title: "Average Cost By Service",
hAxisTitle: "Service Type",
vAxisTitle: "Total Spend",
data: data.reports.averageCostByService.splice(0,0,['columnA', 'columnB'])
}
]
this.setState({
reports: reports,
num_records: data.records_in_range
})
} catch (error) {
console.log(error);
}
लेकिन तत्व डालने के बजाय, मुझे एक खाली सरणी दिखाई दे रही है।
[]
splice()
तत्व को शून्य स्थिति में डालकर मेरी सरणी को संशोधित करना चाहिए...
1
Jim from Princeton
24 सितंबर 2020, 18:12
3 जवाब
सबसे बढ़िया उत्तर
विधि splice
रूपांतरित सरणी वापस नहीं करता है। आप जो चाहते हैं उसे प्राप्त करने के लिए इसे आजमाएं:
try {
const response = await fetch(url);
const data = await response.json();
const { reports: { averageCostByService }} = data;
averageCostByService.splice(0,0,['columnA', 'columnB'])
const reports = [
{
title: "Average Cost By Service",
hAxisTitle: "Service Type",
vAxisTitle: "Total Spend",
data: averageCostByService
}
]
this.setState({
reports: reports,
num_records: data.records_in_range
})
} catch (error) {
console.log(error);
}
इसके बारे में अधिक पढ़ें यहां।
3
kabirbaidhya
24 सितंबर 2020, 18:30
splice
नहीं करता है संशोधित सरणी वापस न करें, जैसा कि अन्य ने बताया है। एक अन्य विकल्प स्प्रेड ऑपरेटर का उपयोग करना है नई सरणी बनाने के लिए:
data: [['columnA', 'columnB'], ...data.reports.averageCostByService],
1
Ross Allen
24 सितंबर 2020, 18:41
समस्या यह है कि आप splice
आपको अपडेटेड ऐरे को वापस करने के लिए कॉल करें, जो यह नहीं करेगा।
concat
का उपयोग करके इसे आजमाएं। a> और आपके पास आपका अपेक्षित परिणाम है।
const reports = [
{
title: "Average Cost By Service",
hAxisTitle: "Service Type",
vAxisTitle: "Total Spend",
data: [['columnA', 'columnB']].concat(data.reports.averageCostByService)
}
];
वैकल्पिक रूप से, आप इस तरह असाइनमेंट से पहले मूल्य को प्रीपेड करने का प्रयास कर सकते हैं:
data.reports.averageCostByService.unshift(['columnA', 'columnB']);
const reports = [
{
title: "Average Cost By Service",
hAxisTitle: "Service Type",
vAxisTitle: "Total Spend",
data: data.reports.averageCostByService
}
];
3
kabirbaidhya
24 सितंबर 2020, 18:38