Допустим, у вас есть яваскрипта класс, как этотJavascript - сортировать объекты в массив в алфавитном порядке по одному свойству массива
var DepartmentFactory = function(data) {
this.id = data.Id;
this.name = data.DepartmentName;
this.active = data.Active;
}
Допустим, вы затем создать несколько экземпляров этого класса и хранить их в массив
var objArray = [];
objArray.push(DepartmentFactory({Id: 1, DepartmentName: 'Marketing', Active: true}));
objArray.push(DepartmentFactory({Id: 2, DepartmentName: 'Sales', Active: true}));
objArray.push(DepartmentFactory({Id: 3, DepartmentName: 'Development', Active: true}));
objArray.push(DepartmentFactory({Id: 4, DepartmentName: 'Accounting', Active: true}));
Так что я теперь будет иметь массив объектов, созданных DepartmentFactory
. Как я могу использовать метод array.sort()
для сортировки этого массива объектов по свойству DepartmentName
каждого объекта?
array.sort()
метод отлично работает при сортировке массива строк
var myarray=["Bob", "Bully", "Amy"];
myarray.sort(); //Array now becomes ["Amy", "Bob", "Bully"]
Но как же я заставить его работать со списком объектов?
Вы можете передать функцию сортировки в качестве первого аргумента в .sort(). –
Поскольку вы используете 'DepartmentFactory' в качестве конструктора, создайте его объекты с помощью' new DepartmentFactory', иначе массив будет заполнен множеством значений 'undefined'. – Anurag