Помогите с сортировкой массива
Здравствуйте.
Есть массив [{"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 |
Signal,
:-? подожду телепата |
Цитата:
BySort должен стать первым, если он не false и самый максимальный idLine должен быть отсортирован по наивысшему занчению из PercentIMG |
"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 первых записей! |
Signal,
false это строка ? |
Цитата:
|
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>
|
ОО, большое тебе спасибо!!! с меня пиво!!! я не силен в javascripts. еще раз тебе пиво!!!
|
| Часовой пояс GMT +3, время: 18:26. |