मेरा एपीआई एक सरणी देता है:

[
  [
    "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