var a = {
a: { param1: 1, param2: 22, param3: 3 },
b: { param1: 11, param2: 2, param3: 33 },
c: { param1: 111, param2: 222, param3: 333 }
};
// ключи оригинального объекта
alert(Object.entries(a).map(([key]) => key).join(" > "));
// создадим отсортированный объект
var aSorted = Object.entries(a)
.sort(([, a], [, b]) => a.param2 > b.param2 ? 1 : -1)
.reduce((m, [k, v]) => ({ ...m, [k]: v }), {})
// ключи отсортированного объекта
alert(Object.entries(aSorted).map(([key]) => key).join(" > "));
Ключи объекта не должны быть строками, которые могут быть приведены к целочисленному индексу (
ecma-international.org/ecma-262/9.0/)
Сообщение от AntonMs
|
На данный момент задача именно такая. Вот к примеру объект, если его перебирать то сначала будет "а". А нужно что-бы b > a > c.
|
В том примере вы ничего не перебираете!
var a = {
b: { param1: 11, param2: 2, param3: 33 },
a: { param1: 1, param2: 22, param3: 3 },
c: { param1: 111, param2: 222, param3: 333 }
};
for(const [key, value] of Object.entries(a)) {
alert(key);
}