2013-10-14 2 views
0

용어 (키, 값)로 연관성이있는 개체를 정렬하고 싶습니다. key에 따라 값을 저장할 수 있지만 value을 기준으로 정렬 할 수 없습니다. 연관 배열의 경우와 같이 내장 된 sort() 함수를 사용합니다.js의 값을 기준으로 개체 정렬

var usernames = {}; 

username[1] = "ZNAME"; 
username[2] = "BNAME"; 
username[3] = "ANAME"; 
username[4] = "TNAME"; 
username[5] = "KNAME"; 
username[5] = "YNAME"; 

$.each(usernames,function(key, value){ 
    alert(key + " : " + value); 
}) 

당신은 그것을 배열 확인해야합니다, 당신은 객체를 정렬 할 수 없습니다 DEMO

+5

객체는 키 가져 오기 위해 사용자 이름을 반복하는 방법을 알려 주시기 바랍니다 수 있습니다, 당신은 배열 ... 대답에 대한 – elclanrs

답변

1

내 업데이트 JSFIIDLE

으로 정렬하는 방법을 알려주세요. 예를 들면 :

var usernamesArray = [ 
    {key:1,username:"ZNAME"}, 
    {key:2,username:"BNAME"}, 
    ... 
    {key:5,username:"YNAME"} 
]; 
var sortedUsernamesArray=usernamesArray.sort(function(a,b){ 
    // 
    return (a.username>b.username)?1:-1; 
}); 

라이브 데모 : http://jsfiddle.net/GrD4v/

참고 : jQuery를 여기에 필요하지 않습니다.

[편집] usernamesArray를 빌드하는 몇 가지 다른 방법이 있습니다. 간단한 하나

var usernamesObject = {}; 
var usernamesArray = []; 

usernamesObject[1] = "ZNAME"; 
usernamesObject[2] = "BNAME"; 
usernamesObject[3] = "ANAME"; 
usernamesObject[4] = "TNAME"; 
usernamesObject[5] = "KNAME"; 
usernamesObject[6] = "YNAME"; 

for (var i=1;i<7,i++) { 
    usernamesArray.push({key:i,username:usernamesObject[i]}); 
} 
+0

감사합니다, 특별한 순서가없고 사용자 이름 – softvar

+0

편집 대답 할 @VarunMalhotra – Christophe

1
var username = []; 

username[0] = "ZNAME"; 
username[1] = "BNAME"; 
username[2] = "ANAME"; 
username[3] = "TNAME"; 
username[4] = "KNAME"; 
username[5] = "YNAME"; 

username.sort(); 

$.each(username,function(key, value){ 
    alert(key + " : " + value); 
}) 
관련 문제