我遇到了这个问题,无法弄清楚原因,也无法在谷歌上找到任何解释。我有一个 $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)上 - 这意味着所有数组都将具有该属性 - 这与 AngularJS
或 google chrome
不相关。
关于javascript - "sort not a function"仅在谷歌浏览器中出现 angularjs 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30931365/