javascript - "sort not a function"仅在谷歌浏览器中出现 angularjs 错误

标签 javascript angularjs google-chrome sorting

我遇到了这个问题,无法弄清楚原因,也无法在谷歌上找到任何解释。我有一个 $http.get 方法来从 url 检索一些数据,成功后我正在对响应进行排序。但是当我在 google chrome 上运行页面时,出现错误“TypeError: response.sort is not a function”

var orderOfGroups = ["alpha", "beta", "gamma", "delta"];

$http.get(url)
.success( function (response, status, headers, config) {
    response.sort( function(a, b) {
        var aname = orderOfGroups.indexOf(a.team);
        var bname = orderOfGroups.indexOf(b.team);

        return bname-aname;
    });
});

我在“response.sort”行收到错误。此外,这仅在谷歌浏览器中发生,我在 firefox 和 IE10 中对其进行了测试,并且它在这些浏览器上运行良好。 我收到(响应)的 json 数据具有以下格式

[
    {
        team: "gamma",
        value: "p"
    },
    {
        team: "alpha",
        value: "q"
    },
    ......
]

你能告诉我如何解决这个问题吗?

最佳答案

您的响应 不是数组。它可以是一个对象,其属性包含数组(例如 response.data)或数组的字符串版本,然后您将需要使用 JSON.parse 和将字符串转换为数组。

无论如何,sort在 Array 的原型(prototype)上 - 这意味着所有数组都将具有该属性 - 这与 AngularJSgoogle chrome相关。

关于javascript - "sort not a function"仅在谷歌浏览器中出现 angularjs 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931365/

相关文章:

javascript - querySelectorAll 对于数字框不起作用

css - 无法在 Google Chrome 中找到 "Emulate CSS media"

Windows - 在本地站点获取 ERR_SSL_SERVER_CERT_BAD_FORMAT

javascript - Angular post 和 web api C#

javascript - 如何获取由angularjs生成的元素的created事件?

angularjs - 如何在 ag-grid 中获取修改后的过滤器值

apache - 此站点需要基于 DHE 的 SSL 密码套件。这些已弃用,将在 2016 年 7 月左右的 M52 中删除

javascript - 在灯箱中的图像上添加热点链接

javascript - 是否可以将一组图像作为数组导入? (创建 react 应用程序项目)

javascript - 使用选定的选项作为函数内的参数