Javascript 以常量形式存储返回的数组
如何将JSON文件返回的数据设置为常量,以便在其他函数中使用它。我可以使用console.log,但如何继续?最终目标是能够使用data.purchase\u orders并循环浏览数据(即价格清单) data.jsonJavascript 以常量形式存储返回的数组,javascript,json,Javascript,Json,如何将JSON文件返回的数据设置为常量,以便在其他函数中使用它。我可以使用console.log,但如何继续?最终目标是能够使用data.purchase\u orders并循环浏览数据(即价格清单) data.json { "purchase_order": [ { "id": "1", "external_number": "1000", &qu
{
"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
是将其用作函数参数的最简单方法。抱歉。我应该把我的目标说得更清楚。我编辑了我的问题以反映这一点。太好了。谢谢完全忘记了在函数中设置任何常量只存在于函数中。