У меня есть следующий массив объектов, который упорядочивает список. Проблема в том, что упорядочение неверно, потому что свойство OrderId не является уникальным во всех заголовках. OrderId начинается с 1 для каждого заголовка, следовательно, проблема. Пожалуйста, помогите! Большого спасибопорядок массива объектов с использованием JavaScript
// Class
var Item = function(orderId, forename, surname, heading) {
this.OrderId = orderId;
this.Forename = forename;
this.Surname = surname;
this.Heading = heading;
};
// Creation of objects
var obj1 = new Item(1, "James", "Smith", "Heading1");
var obj2 = new Item(2, "Tracey", "Janes", "heading1");
var obj3 = new Item(3, "Sarah", "Cann", "Heading1");
var obj4 = new Item(1, "Matt", "Bars", "Heading2");
var obj4 = new Item(2, "Alex", "Magi", "Heading2");
// Add to array
tempArray.push(obj1);
tempArray.push(obj2);
tempArray.push(obj3);
tempArray.push(obj4);
// Sort array
tempArray.sort(function(a, b) {
var a1 = a.OrderId, b1 = b.OrderId;
if (a1 == b1) return 0;
return a1 > b1 ? 1 : -1;
});
// Render array to screen - order by OrderId
for(var i = 0; i < tempArray.length; i++) {
console.log(tempArray[i].Heading);
console.log(tempArray[i].Forename + " " + tempArray[i].Surname);
}
Выхода мне нужно:
Heading 1
James Smith
Tracey Janes
Sarah Cann
Heading 2
Matt Bars
Alex Magi
Поскольку OrderId не является уникальным по я получаю следующую проблему
Heading 1
James Smith
Matt Bars
Alex Magi
Tracey Janes
Sarah Cann
Heading 2
http://stackoverflow.com/questions/16164078/grouped-sorting-on-a-js-array – georg
вы понимаете, что JQuery это? –
Вы, похоже, уже правильно сортируете: http://jsfiddle.net/C7WCU/ – devrooms