[英]How to map object to Array in ES6?
我有一個名為“ urls”的對象數組,其中包含每個具有“ name”和“ url”屬性的對象。 我想將每個對象映射到一個數組。 我該如何實現?
let urls = [{
"name": "regions",
"url": context + "ip/region/getAllRegions.do?query="
},
{
"name": "sub regions",
"url": "context + 'ip/region/getAllSubRegions.do"
},
];
this.axiosData = urls.map(t => {
axios.get(t.url)
.then(res => {
if (res.data.responseCode == 1) {
return res.data.payload;
} else {
toastr.error("error retrieving " + t.name, "Failure");
}
})
.catch(err => {
console.log(err);
});
});
這里的res.data.payload將是一個對象數組,axiosData在Vue實例的屬性內部的數據中定義。 我希望'axiosData'是一個數組,它是對象數組的數組。
axiosData可能是這樣的:
[[{
"id": 8,
"name_en": "Rangpur",
}, {
"id": 9,
"name_en": "Sylhet",
}, {
"id": 10,
"name_en": "Mymensingh",
}],
[{
"another_id": 8,
}, {
"another_id": 9,
}, {
"another_id": 10,
}]]
您應該使用Promise.all函數來發出多個請求。
let urls = [{ "name": "regions", "url": context + "ip/region/getAllRegions.do?query=" }, { "name": "sub regions", "url": "context + 'ip/region/getAllSubRegions.do" }, ]; this.axiosDataPromises = urls.map(t => { return axios.get(t.url) .then(res => { if (res.data.responseCode == 1) { return res.data.payload; } else { toastr.error("error retrieving " + t.name, "Failure"); } }) .catch(err => { console.log(err); }); }); Promise.all(this.axiosDataPromises).then(resultArr => { this.axiosData = resultArr; })
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.