对API响应进行排序

对API响应进行排序

我试图弄清楚如何在将结果存储在组件状态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/

10-11 06:49