Stack Overflow на русском Asked by De.Minov on December 22, 2021
Есть объект
let json = {
"Благодарственное письмо": {},
"Почётная грамота": {},
"Благодарность": {},
"Грамота": {},
"Другое": {},
"Похвальный лист": {},
"Диплом": {}
};
for(let key in json) {
$('body').append('<div>'+key+'</div>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Как вывести его так, чтобы ключ "Другое"
был последним, а остальное отсортировано в алфавитном порядке?
Глупая идея
let json = {
"Благодарственное письмо": {},
"Почётная грамота": {},
"Благодарность": {},
"Грамота": {},
"Другое": {},
"Похвальный лист": {},
"Диплом": {}
};
let sort = [];
for(let key in json) {
sort.push(key);
}
sort.sort();
sort.splice(sort.indexOf("Другое"),1)
sort.push("Другое");
for(let key in sort) {
$('body').append('<div>'+sort[key]+'</div>');
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Здесь вам придется сортировать по ключу и использовать кастомную функцию сравнения:
function customSort(obj, lastkey) {
let res = {};
Object.keys(obj).sort(function(a, b) {
return a == lastkey ? true : b == lastkey ? false : a > b;
}).forEach(function(key) {
res[key] = obj[key];
});
return res;
}
let json = {
"Благодарственное письмо": {},
"Почётная грамота": {},
"Благодарность": {},
"Грамота": {},
"Другое": {},
"Похвальный лист": {},
"Диплом": {}
};
json = customSort(json, "Другое");
console.log(json);
Answered by NoSkill on December 22, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP