Я пытаюсь заказать объект, который я «преобразовал» из JSON. Я пытаюсь использовать эту функцию, которую я нашел на this question, но это, кажется, не работает в моем случае:Сортировка объекта
function sortJsonArrayByProperty(objArray, prop, direction){
if (arguments.length<2) throw new Error("sortJsonArrayByProp requires 2 arguments");
var direct = arguments.length>2 ? arguments[2] : 1; //Default to ascending
if (objArray && objArray.constructor===Array){
var propPath = (prop.constructor===Array) ? prop : prop.split(".");
objArray.sort(function(a,b){
for (var p in propPath){
if (a[propPath[p]] && b[propPath[p]]){
a = a[propPath[p]];
b = b[propPath[p]];
}
}
// convert numeric strings to integers
a = a.match(/^\d+$/) ? +a : a;
b = b.match(/^\d+$/) ? +b : b;
return ((a < b) ? -1*direct : ((a > b) ? 1*direct : 0));
});
}
}
А вот мой JsFiddle
Я хочу, чтобы отсортировать его в 3-х различных пути:
- в хронологическом порядке по Dict (с использованием поля "времени")
- в алфавитном порядке по Dict (с использованием поля "термин" ")
- Все хронологические (игнорирование диктов)
Если этот объект не был таким вложенным я знаю, как это сделать. Могу ли я адаптировать эту функцию?
Вместо того чтобы передавать весь объект 'sortJsonArrayByProperty', пройти каждый' terms' массива самостоятельно. Только для последнего пути вам придется объединить два массива. –
Пожалуйста, создайте резервную копию, а не разместите фрагмент кода, который вы нашли и попытались описать, какую проблему вы пытаетесь решить. Покажите нам, как выглядят ваши данные и что вы хотите, чтобы отсортированный результат выглядел. Это единственный способ помочь вам. И, пожалуйста, разместите эту информацию в своем фактическом вопросе, а не в jsFiddle. Рассматривая данные в jsFiddle, неясно, что именно вы хотите отсортировать, так как там есть несколько массивов. – jfriend00
В скрипке есть копия obj. – Andy