Javascript 顺序阵列问题
后端代码-PHP 前端-角度/JavaScript 我正在尝试在我的网站上进行优先搜索——我有一些用户映射到朋友,每个用户都可以发布某些可以“喜欢”的内容,我的搜索想法是计算有多少用户朋友“喜欢”网站上的资源,并将其从高到低排序。我有这项工作的主要部分(背景代码),并让它返回一个如下所示的对象:Javascript 顺序阵列问题,javascript,php,angularjs,Javascript,Php,Angularjs,后端代码-PHP 前端-角度/JavaScript 我正在尝试在我的网站上进行优先搜索——我有一些用户映射到朋友,每个用户都可以发布某些可以“喜欢”的内容,我的搜索想法是计算有多少用户朋友“喜欢”网站上的资源,并将其从高到低排序。我有这项工作的主要部分(背景代码),并让它返回一个如下所示的对象: {"results": "post": {"9": {"message" : "blah9"} , "1": {"message" :
{"results":
"post":
{"9": {"message" : "blah9"}
,
"1": {"message" : "blah"}}
}
这个数字是帖子的id——只是一个旁注,我用它来刷新站点上其他地方的内容,我的问题是,当我控制台.log()时;这将显示在屏幕上,并更改为:
{"results":
"post":
{"1": {"message" : "blah"},
"9": {"message" : "blah9"}}
}
这使得排序代码变得毫无用处,我能阻止这种情况发生吗
$http.post('php/router.php', {'request' : 'search', 'page': 'Search', 'searchString': searchString}).success(function(data) {
console.log(data.results.post);
});
让Javascript端的东西进行排序,并从PHP中完全删除排序。只要让PHP对集合进行分页(1到10、11到20等等),Javascript就可以为您排序结果(我前面示例中的10块)
如果有大量的结果要分块,那么PHP端可能仍然会有某种排序,但是JS肯定可以对发送到客户端的每个分块进行排序。对象(不是数组)中的属性没有定义的顺序。如果需要定义的排序,请使用array.add
liked
属性,并可以使用angularorderBy:liked