平常的使用中我们都是在函数中return出一个数据,
那么问题来了,遇到想要return两个,或多个数据的函数,我们应该怎么办?
demo:
/**
* 数据格式化方法
* @param { Array } list
* @returns { Object } 处理好的数据格式对象
*/
const formatCityData = (list) => {
const cityList = {};
list.forEach( item => {
const first = item.short.slice(0,1)
if (cityList[first]) {
cityList[first].push(item)
} else {
cityList[first] = [item];
}
})
const cityIndex = Object.keys(cityList).sort()
return {
cityList,
cityIndex
}
}
下面是将其结构出来
async getCityList() {
const { data: res } = await axios.get("http://localhost:8080/area/city",{
params: {
level: 1
}
})
const {cityList,cityIndex} = formatCityData(res.body);
// 获取热门城市数据
const { data: hot } = await axios.get("http://localhost:8080/area/hot");
cityList['hot'] = hot.body;
cityIndex.unshift('hot');
// 获取当前定位城市
const curCity = await getCurrentCity();
cityList['#'] = [curCity];
cityIndex.unshift('#');
console.log(cityList,cityIndex)
};
componentDidMount() {
this.getCityList();
};