parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Для вложенных структур (hash of hash) нужен рекурсивный алгоритм...

Sumo 01.01.2014 21:21

Например такой:
@main[]
  $h[
    ^for[i](1;20){
      ^if($i % 5){
        $.[$i][^for(n)(1;10){$.[$n][^math:random(600)]}]
      }{
         $.[$i][^math:random(1000)]
       }
    }
  ]
  $h[^hashUtils:select[$h;$test1]]
  ^json:string[$h][$.indent(true)]

@test1[aKey;aValue]
  $result($aKey % 2 && $aValue < 450)

@CLASS
hashUtils

@select[aHash;aCondFunction][locals]
  $result[^hash::create[]]
  ^aHash.foreach[k;v]{
    ^if($v is hash){
      $result.[$k][^select[$v;$aCondFunction]]
    }{
       ^if(^aCondFunction[$k;$v]){
         $result.[$k][$v]
       }
     }
  }