我有一个名为newposts
我仔细研究它,如果它符合某些标准,我将它添加到另一个数组:
for (newpost in newposts){
if (!( newposts[newpost][0] in currentposts )){
var triploc1 = locations[newposts[newpost][1]].location;
var triploc2 = locations[newposts[newpost][2]].location;
var detour_distance = fourpoint_distance(newloc1, triploc1, triploc2, newloc2);
if (worthwhile_detour(original_distance,detour_distance)){
currentposts.push(posts[newposts[newpost][0]])
}
}
}
第二行用于检查重复项(newposts[newpost][0]
)是否为ID。当我写它时,我忘记了当前的帖子是一个数组。显然,这不起作用。我需要currentposts成为一个数组,因为正好在下面我对它进行排序。选择完成后,我可以将其转换为数组。但我是javascript的新手,并相信有人可能知道更好的方法来做到这一点。
function sortposts(my_posts){
my_posts.sort(function(a, b) {
var acount = a.sortvar;
var bcount = b.sortvar;
return (bcount-acount);
});
}
答案 0 :(得分:1)
我不确定你的目标是什么,但我可以尝试为你清理它。请注意,我使用了underscore.js库,因为它可以更轻松地使用数组:)如果你不能将underscore.js包含在你的项目中,请告诉我,我和我#39;将其写入" pure" javascript:)
_.each(newposts, function(item) {
if ( _.indexOf(currentposts, posts[item[0]]) >= 0 ) {
var triploc1 = locations[item[1]].location;
var triploc2 = locations[item[2]].location;
var detour_distance = fourpoint_distance(newloc1, triploc1, triploc2, newloc2);
if (worthwhile_detour(original_distance, detour_distance)){
currentposts.push(posts[item[0]])
}
}
});
_.sortBy(currentposts, function(item) {
return item.sortvar;
});
但是,我必须质疑为什么你要使用这么多阵列(新帖子,位置,帖子等)?他们都需要吗?