Как отсортировать обьект в JS?
Есть обьект :
[{
"id": "1",
"name": "300A"
},
{
"id": "2",
"name": "400"
},
{
"id": "3",
"name": "400b"
},
{
"id": "4",
"name": "200"
}]
Нужно отсортировать по имени, по цифрам,т.е.
200,300,300А,400,400b
Ответы (2 шт):
Автор решения: Qwertiy
→ Ссылка
https://ru.stackoverflow.com/a/432370/178988
console.log([
{ "id": "1", "name": "300A" },
{ "id": "2", "name": "400" },
{ "id": "3", "name": "400b" },
{ "id": "4", "name": "200" },
].sort(
(x, y) => parseInt(x.name) - parseInt(y.name) || (x.name > y.name) - (x.name < y.name)
))
.as-console-wrapper.as-console-wrapper { max-height: 100vh }
Автор решения: Igor
→ Ссылка
var a = [
{ "id": "1", "name": "300A" },
{ "id": "2", "name": "400" },
{ "id": "3", "name": "400b" },
{ "id": "4", "name": "200" },
{ "id": "5", "name": "400a" }
];
a.sort((a, b) => {
var res = parseInt(a.name) - parseInt(b.name);
if (res == 0 && a.name != b.name) {
res = (a.name < b.name)? -1 : 1;
}
return res;
});
console.log(a);