Как изменить порядок объектов внутри объекта по значению
Есть объект:
const input = {
nickname: {value: 'nick', id: 1},
city: {value: null, id: 2},
country: {value: 'Russia', id: 3},
postal_code: {value: '', id: 4},
};
Нужно отсортировать объект так, чтобы на выходе получилось такое:
const output = {
nickname: {value: 'nick', id: 1},
country: {value: 'Russia', id: 3},
postal_code: {value: '', id: 4},
city: {value: null, id: 2},
};
Сначала должны быть объекты с value, а дальше объекты с value '' и null. Заранее спасибо за помощь.
Ответы (1 шт):
Автор решения: Aziz Umarov
→ Ссылка
Как то так
const input = {
nickname: {value: 'nick', id: 1},
city: {value: null, id: 2},
country: {value: 'Russia', id: 3},
postal_code: {value: '', id: 4},
};
const output = Object.fromEntries(
Object.entries(input).sort(
(a,b) => {
if (a[1].value != null && b[1].value != null) return 0;
if (a[1].value == null) return 1;
if (b[1].value == null) return -1;}
)
);
console.log(output)