亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

訪問帶有月份數字的嵌套 JSON

訪問帶有月份數字的嵌套 JSON

www說 2023-06-29 22:31:00
我有一個包含每月值的 json 文件。我需要訪問這些。我無法存檔此內容。也許我只是犯了一個錯誤。{"sales":? {? ? "total_sales":"999.99",? ? "totals":? ? ? ?{? ? ? ? ?"2020-10-01":? ? ? ? ? ? ?{? ? ? ? ? ? ? ?"sales":"9.99",? ? ? ? ? ? ?}? ? ? ?}? }}我怎樣才能從第二個“銷售”中獲得 9.99 的價值?我使用JS來獲取total_sales。這有效。為此我真的需要你的幫助。為了更清楚起見:JSON 文件是 Woocommerce 的原始文件。我用原來的API實現Json,需要每個月的銷售額。我已經用 Object.keys 嘗試過了,但它不起作用。我只得到 (2020-01-01) 名稱,但沒有得到嵌套值。
查看完整描述

1 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

因此,假設您有變量名為 salesReport 的數據,如下所示:


{

  "sales": {

    "totals": {

      "2015-01-18": {

        "sales": "-17.00",

      },

      "2015-01-21": {

        "sales": "597.10",

      },

      "2015-02-18": {

        "sales": "32.00",

      },

      "2015-03-12": {

        "sales": "22.00",

      },

    },

  }

}

然后,您希望訪問每個日期的 sales.totals 數據,而無需知道關鍵詳細信息。此外,如果您需要存儲密鑰(在本例中為日期)及其各自的值,那么您可以首先使用Object.entries將它們轉換為條目,如以下代碼所示:


const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);

然后您可以使用以下命令訪問每個日期的銷售數據


salesReportTotalsEntries[0][1].sales

salesReportTotalsEntries[1][1].sales

最后一步是,您可以使用Array.reduce根據每個月的數據對每個總銷售數據進行求和。這是完整的代碼:


const salesReport = {

  "sales": {

    "totals": {

      "2015-01-18": {

        "sales": "-17.00",

      },

      "2015-01-21": {

        "sales": "597.10",

      },

      "2015-02-18": {

        "sales": "32.00",

      },

      "2015-03-12": {

        "sales": "22.00",

      },

    },

  }

};


const salesReportTotalsEntries = Object.entries(salesReport.sales.totals);

const salesReportTotalsByMonths = salesReportTotalsEntries.reduce((a, v) => {

  const currentMonth = v[0].split('-')[1];

  if (!a[currentMonth]) {

    a[currentMonth] = Number(v[1].sales);

    return a;

  }

  a[currentMonth] += Number(v[1].sales);

  return a;

}, {});


console.log(`Total Sales Report in January is ${salesReportTotalsByMonths['01']}`);

console.log(`Total Sales Report in February is ${salesReportTotalsByMonths['02']}`);


查看完整回答
反對 回復 2023-06-29
  • 1 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號