1

ここでこれに対する答えを見つけようとしましたが、実際の単純化された例を考え続けたので、ここに行きます:

Flickr の API からフォトセット リストを取得していますが、これは 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"}
    ...
    ...
    ...
]

たとえば、値がサブオブジェクト内にある場合、タイトルを並べ替えるにはどうすればよいですか?

4

3 に答える 3

4

Array.sortへのコールバックを提供し、ソートのために通常の-1、0、1を返すことができます。

some_response.photoset.sort(function(a, b){ 
    return a.title._content.localeCompare(b.title._content); 
});
于 2012-11-07T22:16:57.163 に答える
0

どちらかわかりませんが、 for/in ステートメントループでそれを理解し始めます...

var photoObjects= {};
for(k in initialObject){
    photoObjects[k] = initalObject.photoset[0][k];
    console.log(photoObjecs[k]);
}
于 2012-11-07T22:29:21.847 に答える
0

Javascript を使用すると、関数をパラメーターとして配列の並べ替え関数に渡すことができます。

タイトルの後にオブジェクトで配列をソートする単純なヘルパー関数を書くことができます

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の例です

于 2012-11-07T22:32:21.140 に答える