Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   сортировка значений в объекте (https://javascript.ru/forum/misc/72279-sortirovka-znachenijj-v-obekte.html)

Cache 19.01.2018 11:35

Цитата:

Сообщение от ksa (Сообщение 475710)
Т.е. "сортировка" не является собственно задачей? Задача совсем в другом.

Тогда напиши что "дано" и что, таки нужно получить в итоге.

задача, хранить все подобъекты в основном объекте а не в массиве
при этом иметь возможность получить какое-то количество (заданное как константа), например 20, подобъектов с условием что определенное значение у них, например параметр v2, больше чем у остальных (т.е. теоретически это сортировка по убыванию по параметру v2 и взятие первых 20 объектов (по сути нужен их id))

Cache 19.01.2018 11:40

Цитата:

Сообщение от Aetae (Сообщение 475709)
Значит придётся..

возможно что сортировка не единственное решение, потому и пришел на форум, ибо не хватает знаний, как еще, кроме сортировки, можно определить/найти объекты со значением выше чем у остальных (например, 20 подобъектов значение v2 у которых будет больше нежели у остальных подобъектов)

рони 19.01.2018 11:46

Cache,
сделайте ваш обьект для примера, ключей на 10

Aetae 19.01.2018 11:49

Цитата:

Сообщение от Cache (Сообщение 475713)
например 20, подобъектов с условием что определенное значение у них, например параметр v2, больше чем у остальных (т.е. теоретически это сортировка по убыванию по параметру v2 и взятие первых 20 объектов (по сути нужен их id))

arr=[
    {
        v1:5,
        v2:4,
        v3:0,
        id:123
    },{
        v1:0,
        v2:3,
        v3:5,
        id:456
    },{
        v1:2,
        v2:0,
        v3:7,
        id:321
    } //, ...
];

var result = arr.sort(function(a, b){
   return b.v2 - a.v2
}).slice(0, 20)

рони 19.01.2018 12:06

Aetae, :)
.map(function(a) {
    return a.id;
  })

Cache 19.01.2018 12:23

Aetae,
у меня уже есть такая функция для массива, я же говорю про объект, когда изначально будет объект а не массив, можно ли получить такие данные

Cache 19.01.2018 12:28

только у меня она несколько сложнее, с учетом того что сортировка нужна не только по v2 но и по v1 и по v3 и т.д.

Cache 19.01.2018 12:29

Цитата:

Сообщение от рони (Сообщение 475717)
Aetae, :)
.map(function(a) {
    return a.id;
  })

map на сколько помню, опять же работает только с массивами

т.е. в любом случае, на сколько я понял, преобразовывать в массив? поиск по объекту с такими условиями не возможен?

рони 19.01.2018 12:31

Цитата:

Сообщение от Cache
можно ли получить такие данные

да, вы зачем кота за хвост тяните.
Цитата:

Сообщение от ksa
Тогда напиши что "дано" и что, таки нужно получить в итоге.


рони 19.01.2018 12:34

Цитата:

Сообщение от Cache
поиск по объекту с такими условиями не возможен?

а зачем, если можно решить через массив?


Часовой пояс GMT +3, время: 16:50.