Javascript 以常量形式存储返回的数组

Javascript 以常量形式存储返回的数组,javascript,json,Javascript,Json,如何将JSON文件返回的数据设置为常量,以便在其他函数中使用它。我可以使用console.log,但如何继续?最终目标是能够使用data.purchase\u orders并循环浏览数据(即价格清单) data.json { "purchase_order": [ { "id": "1", "external_number": "1000", &qu

如何将JSON文件返回的数据设置为常量,以便在其他函数中使用它。我可以使用console.log,但如何继续?最终目标是能够使用data.purchase\u orders并循环浏览数据(即价格清单)

data.json

{
  "purchase_order": [
    {
      "id": "1",
      "external_number": "1000",
      "status": "Created",
      "price_list": [
            {
               "id": "msrp",
               "name": "retail price",
               "currency": "USD"
               }
        ],
      "shipments": [
                {
                    "id": "1",
                    "external_number": "10000",
                    "status": "Created",
                    "tracking_number": "Z1F2"
                },
                {
                    "id": "2",
                    "external_number": "9000",
                    "status": "In Transit",
                    "tracking_number": "PL21F"
                }
        ]
    }
  ]
}
index.html

<div id="shipments"></div>

<script>
const data_file = 'data.json';

async function fetchPO(){
  const reponse = await fetch(data_file);
  const data = await response.json();

  const PO = data.purchase_orders.forEach((PODetails) => {
    console.log(PODetails);
    //^this displays key and value of my JSON data_file
  })

  displayShipments(PO);
}

fetchPO();

function displayShipments(shipmentsList){
  document.getElementById("shipments").innerHTML = `
    ${Object.keys(shipmentsList).map(function (shipments) 

      return `<a href="#">${shipments.id}</a>
              <p>${shipments.tracking_number}</p>`
       )}
    }
  `
}

</script>

const data_file='data.json';
异步函数fetchPO(){
const response=等待获取(数据文件);
const data=wait response.json();
const PO=数据.采购订单.forEach((PODetails)=>{
控制台日志(PODetails);
//^这将显示我的JSON数据文件的键和值
})
显示装运(PO);
}
fetchPO();
功能显示发货(发货列表){
document.getElementById(“装运”).innerHTML=`
${Object.keys(shipmentsList).map(函数(装运)
返回`
${装运.跟踪_编号}

` )} } ` }
一种方法是从异步
fetcpo()返回数据,并将承诺存储在变量中

承诺可以被你想用多少次就用多少次

简化示例:

异步函数fetchUsers(){ const response=等待获取('https://jsonplaceholder.typicode.com/users'); 返回response.json(); } //发出请求并在变量中存储承诺 const usersPromise=fetchUsers(); 异步函数logAddress(){ //承诺可以多次使用 const users=等待用户promise; 控制台清除() console.log(用户[0]。地址); } 异步函数logUserName(){ const users=等待用户promise; 控制台清除() console.log(用户[0].name); }
记录第一个用户地址

记录第一个用户名
您可以使用
.map()
方法仅包括装运属性,如:
const-shippings=data.purchase\u-orders.map(po=>detail=>detail.shippings.flat()
。然后,调用
DisplayShippings(Shippings)
函数并将其作为参数传递。希望这有帮助@DSPdav它不是真正可重用的吗?最终。我还有其他需要访问data.purchase\u orders的函数。由于您的目标仅使用
data.purchase\u order.Shippings
属性,所以像我一样将其存储到变量
const Shippings
是将其用作函数参数的最简单方法。抱歉。我应该把我的目标说得更清楚。我编辑了我的问题以反映这一点。太好了。谢谢完全忘记了在函数中设置任何常量只存在于函数中。