我试着在这里找到答案,但不断提出真正简单的例子,所以这里有:
我从Flickr的API中提取了一个photoset列表,它需要在javascript中。无论如何,他们的反应与大多数其他人的反应不同,它们将值放在子对象中,如下所示:
"photoset":[
{..."photos":"15", "videos":0, "title":{"_content":"Shocktoberfest 2012"}, "description":{"_content":""}, "needs_interstitial":0, "visibility_can_see_set":1, "count_views":"0", "count_comments":"0", "can_comment":0, "date_create":"1351829136", "date_update":"1351829309"}
...
...
...
]
当值在子对象中时,如何对标题进行排序?
答案 0 :(得分:4)
您可以提供Array.sort的回调并返回通常的-1,0,1进行排序:
some_response.photoset.sort(function(a, b){
return a.title._content.localeCompare(b.title._content);
});
答案 1 :(得分:0)
不确定,但是,我会用for / in语句循环开始弄明白......
var photoObjects= {};
for(k in initialObject){
photoObjects[k] = initalObject.photoset[0][k];
console.log(photoObjecs[k]);
}
答案 2 :(得分:0)
Javascript允许您将函数作为参数传递给Arrays排序函数
你可以写一个简单的辅助函数来在标题
之后用对象对数组进行排序var arr = [
{title:"A"},
{title:"F"},
{title:"B"}
];
function sortarr (arr,item) {
arr.sort(function (a,b) {
if (typeof a == "object" && typeof b == "object" ) {
console.log(a[item]);
if ( a[item] < b[item] )
return -1;
if ( a[item] > b[item] )
return 1;
return 0;
}
});
return arr;
}
console.log(JSON.stringify(sortarr(arr,"title")));
以下是jsbin
的示例