сортировать по идентификатору из объекта - PullRequest
0 голосов
/ 14 апреля 2019

привет, мне нужно отсортировать этот объект по catId:

book {
books : {
1: {id: 1, name: "javascript", catId: 2}
2: {id: 2, name: "ayat", catId: 1}
3: {id: 3, name: "olom", catId: 3}
4: {id: 4, name: "css", catId: 2}
5: {id: 5, name: "chap", catId: 1}
}
}

вывод:

book {
books : {
2: {id: 2, name: "ayat", catId: 1}
5: {id: 5, name: "chap", catId: 1}
4: {id: 4, name: "css", catId: 2}
1: {id: 1, name: "javascript", catId: 2}
3: {id: 3, name: "olom", catId: 3}
}
}

или, например, нажать {id: 3, name: "olom", catId: 3} в пустой массив:

arrBooks [
{id: 2, name: "ayat", catId: 1}
{id: 5, name: "chap", catId: 1}
{id: 4, name: "css", catId: 2}
{id: 1, name: "javascript", catId: 2}
{id: 3, name: "olom", catId: 3}
]

1 Ответ

3 голосов
/ 14 апреля 2019

Вы можете использовать Object.values и sort следующим образом:

const book = {
books : {
   1: {id: 1, name: "javascript", catId: 2},
   2: {id: 2, name: "ayat", catId: 1},
   3: {id: 3, name: "olom", catId: 3},
   4: {id: 4, name: "css", catId: 2},
   5: {id: 5, name: "chap", catId: 1}
 }
}

const sortedBooks = Object.values(book.books)
                          .sort((a, b) => a.catId - b.catId)
                          
console.log(sortedBooks)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...