JSP实现字典根据对象值对所有key对象进行排序 分手后的思念是犯贱 2022-05-14 13:58 142阅读 0赞 # JSP实现字典根据对象值对所有key对象进行排序 # ## 01.排序要求分析 ## ##### 以下是原dic字典数据,由以下数据(可见图一红圈部分)可得到共有3个大key,space1、space2、space3, 3个大key里面分别对应两个子key,jgs 和 space\_time\_results,要求根据dic的次子key:space\_time\_results 中的所有Pvalue值大小从小到大排序,其中no即为排序结果对应的大小,别的参数不变,所属关系不变,输出结果如图二。 ##### \{“space1”:\{“jgs”:\[\],“space\_time\_results”:\[\]\},“space2”:\{“jgs”:\[\{“id”:15,“Unit”:“那邦镇”,“lei”:“医疗机构”,“E”:97.559,“N”:24.7542," maptype":“GCJ-02”,“ok”:1\}\],“space\_time\_results”\[\{“no”:1,“location\_ids”:“1”,“c\_id”:1,“c\_r”:0," TimeCluster":5,“CA”:1,“uA”:0.75,“LGLRA”:0.04755394943117175,“Pvalue”:0.619,“ok”:1\},\{ “no”:2,“location\_ids”:“1”,“c\_id”:1,“c\_r”:0,“TimeCluster”:6,“CA”:61,“uA”:3.98515,“LGLRA”:111.0141,“Pvalue”:1.466870377E-103,“ok”:1\}\]\},“space3”:\{“jgs”:\[\{“id”:15,“Unit”:“那邦镇”,“lei”:“医疗机构”,“E”:97.559,“N”:24.7542,“maptype”:“GCJ-02”,“ok”:1\}\]," space\_time\_results":\[\{“no”:1,“location\_ids”:“1”,“c\_id”:1,“c\_r”:0,“TimeCluster”:5,“CA”:1,“uA”:0.75,“LGLRA”:0.047553 94943117175,“Pvalue”:8.4670377E-106,“ok”:1\},\{“no”:2,“location\_ids”:“1”,“c\_id”:1,“c\_r”:0,“TimeCluster”:6,“CA”:61,“uA”:3.984 630163304515,“LGLRA”:111.0157224293711,“Pvalue”:3.477E-103,“ok”:1\}\]\}\} ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70] 图一 dic分析图 ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70 1] 图二 dic排序结果 ## 02.排序完成代码分析 ## (1)流程图分析: Created with Raphaël 2.2.0取字典数据dic将字典放入数组中排序key,放入空字典function(a,b) \{return a-b\}赋值空序列结束 (2)代码实现 <html> <body> <script type="text/javascript"> dic ={ "space1":{ "jgs":[],"space_time_results":[]},"space2":{ "jgs":[{ "id":15,"Unit":"那邦镇","lei":"医疗机构","E":97.559,"N":24.7542,"maptype":"GCJ-02","ok":1}],"space_time_results":[{ "no":1,"location_ids":"1","c_id":1,"c_r":0,"TimeCluster":5,"CA":1,"uA":0.75,"LGLRA":0.04755394943117175,"Pvalue":0.619,"ok":1},{ "no":2,"location_ids":"1","c_id":1,"c_r":0,"TimeCluster":6,"CA":61,"uA":3.98515,"LGLRA":111.0141,"Pvalue":1.466870377E-103,"ok":1}]},"space3":{ "jgs":[{ "id":15,"Unit":"那邦镇","lei":"医疗机构","E":97.559,"N":24.7542,"maptype":"GCJ-02","ok":1}],"space_time_results":[{ "no":1,"location_ids":"1","c_id":1,"c_r":0,"TimeCluster":5,"CA":1,"uA":0.75,"LGLRA":0.04755394943117175,"Pvalue":8.4670377E-106,"ok":1},{ "no":2,"location_ids":"1","c_id":1,"c_r":0,"TimeCluster":6,"CA":61,"uA":3.984630163304515,"LGLRA":111.0157224293711,"Pvalue":3.477E-103,"ok":1}]}}; var arr = []; //建立空数组 var arr2 = { }; //建立空字典 arr.push(dic); //将原字典数据放入数组中 // alert(JSON.stringify(arr)); 测试 for(var i=0;i<arr.length;i++){ // 排序 alert("arr[i]:"+JSON.stringify(arr[i])); for(var key in arr[i]){ //arr[i][key]["space_time_results"] 取出子key,space_time_results for(var j=0;j<arr[i][key]["space_time_results"].length;j++){ no = arr[i][key]["space_time_results"][j].no arr2[key+"-"+no] = arr[i][key]["space_time_results"][j]; } } } var sdic=Object.keys(arr2).sort(function(a,b){ return arr2[a]["Pvalue"]-arr2[b]["Pvalue"]}); //用space_time_results中的Pvalue比较大小排序 for(ki in sdic){ var ki = parseInt(ki); var num = ki +1; arr2[sdic[ki]]["no"]=num; } document.writeln(JSON.stringify(dic)); </script> </body> </html> ## 03.实现结果 ## ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70 2] [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70]: /images/20220504/0a56bc96f33543948f5a6311846c4fb9.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70 1]: /images/20220504/5dd68ef4d0a640058d5d341310f55367.png [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0NzM0MzAz_size_27_color_FFFFFF_t_70 2]: /images/20220504/c5a5e6d2ab1043e0a3db886d57fb8ea7.png
还没有评论,来说两句吧...