【发布时间】:2015-09-05 00:52:49
【问题描述】:
我遇到了这个问题,无法弄清楚原因,也无法在谷歌上找到任何解释。我有一个 $http.get 方法可以从 url 中检索一些数据,成功后我正在对响应进行排序。但是当我在谷歌浏览器上运行页面时,我收到错误“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”行收到错误消息。这也只发生在 google chrome 中,我在 firefox 和 IE10 中对其进行了测试,并且在这些浏览器上运行良好。 我收到(响应)的json数据格式如下
[
{
team: "gamma",
value: "p"
},
{
team: "alpha",
value: "q"
},
......
]
您能告诉我如何解决这个问题吗?
【问题讨论】:
-
是
responsearray?如果不使用response = JSON.parse(response); -
response总是是array吗? -
是的,响应总是一个对象数组。对象类型也不会改变。
-
console.log(response instanceof Array)是什么? -
它在 chrome 中打印“false”,在其他浏览器中打印“true”。 “GET /TYPE=GETLIST HTTP/1.1”被添加到数组的开头,整个数组被转换成chrome中的文本。知道为什么会这样吗?
标签: javascript angularjs google-chrome sorting