仅在Google Chrome中,angularjs中的"排序不是函数"错误

aka*_*jkn 4 javascript sorting google-chrome angularjs

我遇到了这个问题,我无法找出原因,也无法在谷歌上找到任何解释.我有一个$ http.get方法从URL中检索一些数据,成功后我正在排序响应.但是当我在谷歌浏览器上运行页面时,我收到错误"TypeError:response.sort不是一个函数"

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;
    });
});
Run Code Online (Sandbox Code Playgroud)

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

[
    {
        team: "gamma",
        value: "p"
    },
    {
        team: "alpha",
        value: "q"
    },
    ......
]
Run Code Online (Sandbox Code Playgroud)

你能告诉我怎么解决这个问题吗?

Ami*_*ich 7

response不是一个阵列.它可能是一个包含Array(例如response.data)或您的数组的字符串版本的属性的对象,然后您将需要使用JSON.parse该字符串并将其转换为数组.

无论如何,排序是在阵列的原型-这意味着所有的阵列将对他们财产-这是相关的AngularJS或者google chrome.