2013-07-21 2 views
1

웹 사이트에서 약간의 코드로 작업 중이며 멤버 ID로 결과를 정렬하려고합니다 (코드가 아래의 코드에 남았습니다). 순서를 정렬하지 않는 것 같습니다. 그러나 결과는 내가 틀린 일을하고있을 것임에 틀림 없다고 생각한다. 누구든지 그 문제가 무엇인지 알 수 있습니까? 그리고 아마도 내가 어떻게 결과의 양을 약 10 개로 제한 할 수 있습니까?자바 스크립트 정렬 방법

var httpRequestObject = $.ajax({ 
type: "POST", 
contentType: "application/json; charset=utf-8", 
url: "/Wcf/Search.svc/TestSearch", 
dataType: "json", 
success: function (response) { 

    if (response != null && response.d != null) { 
     var data = response.d; 
     if (data.ServiceOperationOutcome == 10) { 

      var profileList = data.MemberList; 
      if (profileList != null && profileList.length > 0) { 
       for (var i = 0; i < profileList.length; i++) { 
        var profile = profileList[i]; 

        // sort var 
        var memberId = (profile.MemberId); 


        if (profile != null) { 
         var clonedTemplate = $('.profile-slider #profile').clone(); 
         $(clonedTemplate).removeAttr('style').removeAttr('id'); 
         $(clonedTemplate).find('img').attr("src", profile.ThumbnailUrl).attr("alt", profile.Nickname).wrap('<a></a>'); 
         $(clonedTemplate).appendTo('.profile-slider'); 

         // sort 
         $(memberId).sort(); 
        } 
       } 

      } 
     } 

     else { 
      alert("Error code " + String(data.ServiceOperationOutcome)); 
     } 
    } 

    else { 
     alert("Null data"); 
    } 
}, 

error: function (jqXHR, textStatus, errorThrown) { 
    alert(errorThrown); 
} 

});

+0

'$ (memberId) .sort();'에 대한 귀하의 의도는 무엇입니까? 여기에 '회원 아이디'란 무엇입니까? –

답변

3

adeneo가 말한 것처럼 회원 목록을 정렬하려고합니다.

profileList = profileList 
    .filter(function (arg) {return arg !== null;}) // remove nulls 
    .sort(function(a, b) { 
    return a.MemberId < b.MemberId ? -1 : 1; // the < operator works for numbers or strings 
    }); 
+0

Brillaint! 두 가지 덕분에 – Adam

3

jQuery에는 정렬 방법이 없지만 찾고있는 것은 아마도 Array.sort()입니다. 그러나 프로필은 배열 data.MemberList 안에있는 개체 인 것 같습니다.

var profileList = data.MemberList; // array 
profileList.sort(function(a,b) { 
    return a.MemberId.localeCompare(b.MemberId); 
}); 

for (var i = 0; i < profileList.length; i++) { 
    // do stuff to each item in the now sorted array 
}