2015-06-23 3 views
0

(Пожалуйста, простите ошибки - это мой первый пост, и я также относительно новым Javascript)Javascript Сортировка массива объектов

Я пытаюсь сортировать массив объектов по определенному значению свойства в JavaScript. У меня есть несколько объектов следующим образом:

var Obj1 = {firstName: "John", lastName: "Doe", возраст: 46};
var Obj2 = {firstName: "Paul", lastName: "Smith", возраст: 22};
var Obj3 = {firstName: "Trent", lastName: "Johnson", возраст: 81};

И я спас их в массив для быстрого доступа:

вар Arr = [Obj1, obj2, Obj3];

Я хочу, чтобы отсортировать объекты в массиве по возрасту, давая:

Arr = [obj2, Obj1, Obj3];

, сохраняя при этом целостность каждого объекта (т.е. Obj1 все еще содержит John, Doe и 46).

Из моих исследований я не видел, чтобы кто-либо обращался к этой ситуации простым способом.

Спасибо за любое направление, которое вы могли бы мне дать!

ответ

1

Вы используете собственный обратный вызов с методом массива .sort().

Arr.sort(function(a, b) { 
    return a.age - b.age; 
}); 

MDN reference page сверху .sort().


И вот рабочий фрагмент кода:

var Obj1 = {firstName: "John", lastName: "Doe", age: 46}; 
 
var Obj2 = {firstName: "Paul", lastName: "Smith", age: 22}; 
 
var Obj3 = {firstName: "Trent", lastName: "Johnson", age: 81}; 
 

 
var Arr = [Obj1, Obj2, Obj3]; 
 

 
Arr.sort(function(a, b) { 
 
    return a.age - b.age; 
 
}); 
 

 
document.write(JSON.stringify(Arr));

+0

Абсолютно идеально - именно то, что я хотел! Большое вам спасибо за вашу помощь! (Извинения за дубликат - не могу поверить, что я пропустил это) – MSTTm

Смежные вопросы