我试图弄清楚如何在将结果存储在组件状态apiResults: []
中之前,按商店名称的字母顺序对API响应进行排序
这是提交表单或单击按钮时调用的我的代码
getStores() {
let userZip = this.state.userInput;
const api = "some api";
return fetch(api + userZip)
.then((response) => response.json())
.then((responseJson) => {
//sort array alphabetically by store name
//Add code below this line
responseJson = sort()???
// Add code above this line
this.setState({
apiResults: responseJson
});
console.log(this.state.apiResults);
})
.catch((error) => {
console.error(error);
});
}
这是我正在使用的示例JSON。
{
"id": "1",
"code": "35203",
"launch_date": "2016-01-29T00:00:00.000-05:00",
"metro_name": "Birmingham",
"stores": [
{
"id": "1",
"name": "Target",
"launch_date": "2018-01-24T00:00:00.000-05:00"
},
{
"id": "2",
"name": "Costco",
"launch_date": "2017-08-14T00:00:00.000-05:00"
},
{
"id": "3",
"name": "Winn Dixie",
"launch_date": "2018-11-29T00:00:00.000-05:00"
},
{
"id": "4",
"name": "Piggly Wiggly",
"launch_date": "2018-04-10T00:00:00.000-05:00"
}
]
}
最佳答案
这是一个示例,您可以如何执行此操作
responseJson.stores.sort(function(a, b) {
return (a.name.toUpperCase() < b.name.toUpperCase()) ? -1 : (a.name.toUpperCase() > b.name.toUpperCase()) ? 1 : 0;
});
看看我的Codepen https://codepen.io/ulrichdohou/pen/ERbYRX?editors=0010
关于javascript - 在传递给React中的props之前以JSON格式对API响应进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50890063/