Я совершенно не знаю, как решить эту проблему с сортировкой.
JS-объект
o={"items":[
{"name":"Name 1","types":[
{"type":"Type 4","subtype":"Sub a"}
]},
{"name":"Name 2","types":[]},
{"name":"Name 3","types":[
{"type":"Type 1","subtype":"Sub x"}
]}
]}
Я пытаюсь отсортировать по типу, что-то вроде o.sortByType ();
Array.prototype.sortByType = function(){
this.sort(function(a,b) {
var ap = a[types][type], bp = b[types][type];
if(ap!=undefined||bp!=undefined){
if (ap < bp) {return -1;}
if (ap > bp) {return 1;}
}else{
return 0;
}
})
return this;
}
Я пытаюсь получить переупорядоченный массив:
items:
Имя 3,
Имя 1,
Имя 2
Используемая здесь функция сортировки работает для любого не вложенного свойства объектов элемента.
Если я использую [типы] [тип] в сортировке, она возвращает ошибку, «типы» не определены.
Если я использую a.types.type, он просто возвращает неизмененный массив.
Как я уже сказал, я ужасно застрял, и любая помощь или указатели будут с благодарностью.