Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Помогите с сортировкой массива (https://javascript.ru/forum/css-html/66295-pomogite-s-sortirovkojj-massiva.html)

Signal 06.12.2016 23:35

Помогите с сортировкой массива
 
Здравствуйте.
Есть массив
[{"idLine":"1","PercentIMG":[{"Napr":"Name1","BySort":"false"},{"Napr":"Name2", "BySort":7}]},
{"idLine":"4","PercentIMG":[{"Napr":"Name1","BySort":22},{"Napr":"Name2","BySo rt":19}]},
{"idLine":"5", "PercentIMG":[{"Napr":"Name1","BySort":7},{"Napr":"Name2","BySor t":5}]},
{"idLine":"6","PercentIMG":[{"Napr":"Name1","BySort":"false"},{"Napr":"Name2", "BySort":12}]},

как его отсортировать по PercentIMG?
и PercentIMG может быть любого размер, т.е. Name1, Name2...NameN
Надо отсортировать по BySort

рони 07.12.2016 00:03

Signal,
:-? подожду телепата

Signal 07.12.2016 00:26

Цитата:

Сообщение от рони (Сообщение 437265)
Signal,
:-? подожду телепата

телепатирую, нужно отсортировать "PercentIMG":[{"Napr":"Name1","BySort":"false"},{"Napr":"Name 2", "BySort":7}]},

BySort должен стать первым, если он не false и самый максимальный

idLine должен быть отсортирован по наивысшему занчению из PercentIMG

Signal 07.12.2016 00:28

"PercentIMG": может быть и [{"Napr":"Name1","BySort":"false"},{"Napr":"Name 2", "BySort":7},{"Napr":"Name 3", "BySort":23},{"Napr":"Name 4", "BySort":9} ,{"Napr":"Name 3", "BySort":false}]}

нужен результат "PercentIMG":[{"Napr":"Name 3", "BySort":23}, {"Napr":"Name 4", "BySort":9}, {"Napr":"Name 2", "BySort":7}, {"Napr":"Name1","BySort":"false"}, {"Napr":"Name 3", "BySort":false}]

ну и такойже idLine по сортировке в зависимотси от PercentIMG первых записей!

рони 07.12.2016 00:39

Signal,
false это строка ?

Signal 07.12.2016 00:44

Цитата:

Сообщение от рони (Сообщение 437269)
Signal,
false это строка ?

нет это boolean, просто json сделал как строка я ее и скопировал сюда

рони 07.12.2016 00:51

Signal,
<script>

var arr = [{"idLine":"1","PercentIMG":[{"Napr":"Name1","BySort":false},{"Napr":"Name2", "BySort":7}]},
 {"idLine":"4","PercentIMG":[{"Napr":"Name1","BySort":22},{"Napr":"Name2","BySort":19}]},
 {"idLine":"5", "PercentIMG":[{"Napr":"Name1","BySort":7},{"Napr":"Name2","BySort":5}]},
 {"idLine":"6","PercentIMG":[{"Napr":"Name1","BySort":false},{"Napr":"Name2", "BySort":12}]}] ;
arr.forEach(function(el) {
el = el.PercentIMG;
el.sort(function(a,b) {
return b.BySort - a.BySort
})
})
arr.sort(function(a,b) {
return b.PercentIMG[0].BySort - a.PercentIMG[0].BySort
})
document.write(JSON.stringify(arr, null, 4))


  </script>

Signal 07.12.2016 01:05

ОО, большое тебе спасибо!!! с меня пиво!!! я не силен в javascripts. еще раз тебе пиво!!!


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