У меня есть объект буквального следующим образом:JavaScript: Оптимизация сортировки пользовательского объекта буквального
var obj = {
one: "short-term",
two: "long-term",
three: "mid-term",
four: "long-term",
five: "short-term",
six: "short-term",
seven: "long-term",
eight: "mid-term",
nine: "short-term",
ten: "mid-term"
};
И я хотел бы сортировать порядок пар ключ/значение, на основе значения, таким образом, что конечный результат будет быть:
var obj = {
one: "short-term",
five: "short-term",
six: "short-term",
nine: "short-term",
three: "mid-term",
eight: "mid-term",
ten: "mid-term",
two: "long-term",
four: "long-term",
seven: "long-term"
};
Мой метод сортировки довольно проста и, вероятно, неэффективна (Вот FIDDLE):
var sorted = {};
for (var i in obj) {
if (obj[i] === "short-term") {
sorted[i] = obj[i];
}
}
for (var i in obj) {
if (obj[i] === "mid-term") {
sorted[i] = obj[i];
}
}
for (var i in obj) {
if (obj[i] === "long-term") {
sorted[i] = obj[i];
}
}
Возможно ли, чтобы данный данный сценарий достиг того же результата путем циклического перехода через объект только один раз с использованием или без использования jQuery, но не с другими библиотеками?
У меня есть довольно много подобных случаев в моем проекте, где мне нужно использовать один и тот же метод сортировки, и я боюсь, что мой текущий способ обработки не совсем оптимален для большого набора объектов.
Вы не можете сортировать объекты. Пара ключей-значений не имеет порядка. – Bergi
@Bergi - Итак, что у меня есть так хорошо, как получается? – BinaryCat
Используйте массив вместо этого. – Bergi