У меня есть массив объектов, называемый canvasObjects
.Сортировка массива на основе атрибута объекта - Javascript
Каждый объект имеет атрибут z
.
Я хочу отсортировать этот массив на основе объектов z
. Как это сделать, используя метод sort()
?
У меня есть массив объектов, называемый canvasObjects
.Сортировка массива на основе атрибута объекта - Javascript
Каждый объект имеет атрибут z
.
Я хочу отсортировать этот массив на основе объектов z
. Как это сделать, используя метод sort()
?
Вам просто нужно пройти в компараторе функции сортировки
function compare(a,b) {
if (a.attr < b.attr)
return -1;
if (a.attr > b.attr)
return 1;
return 0;
}
canvasObjects.sort(compare);
или инлайн
canvasObjects.sort(function(a,b) {return (a.attr > b.attr) ? 1 : ((b.attr > a.attr) ? -1 : 0);});
Смотреть это POST
Отправить анонимную функцию метода сортировки, который возвращает вычитание имущества «z»
var arr = [{z:2},{z:4},{z:5},{z:1},{z:3}];
arr.sort(function(a,b) {return a.z - b.z});
выше ставит номера в z на заказ 1,2,3,4,5. Чтобы отменить порядок, верните «b.z - a.z».
Пробовал другие ответы, размещенные здесь, но я нашел следующее, чтобы работать лучше всего.
canvasObjects.sort(function(a,b) { return parseFloat(a.z) - parseFloat(b.z) });