js中對list數組數據進行Map數據結構改造 lambda map


js中對list數組數據進行Map數據結構改造

后端返回的數據類型是list數組


    
    
    
            
  1. [
  2. {
  3. "processStartUser": "1111",
  4. "taskCreateTime": 1590634371219,
  5. "taskCompleteTime": 1590634371221,
  6. "taskHandler": "1111",
  7. "taskHandlerType": null,
  8. "taskHandlerOpinion": null,
  9. "taskHandlerLink": null,
  10. "taskHandlerDescription": null,
  11. "taskPractitioner": "1111",
  12. "taskId": null,
  13. "taskName": "開始",
  14. "actId": "start",
  15. "actName": "開始",
  16. "process_defined_id": null,
  17. "process_instance_id": null,
  18. "taskAuditStatus": "approving",
  19. "taskStatus": null,
  20. "logisticsNum": null
  21. },
  22. {
  23. "processStartUser": "1111",
  24. "taskCreateTime": 1590634371221,
  25. "taskCompleteTime": 1590634371236,
  26. "taskHandler": "1111",
  27. "taskHandlerType": null,
  28. "taskHandlerOpinion": null,
  29. "taskHandlerLink": null,
  30. "taskHandlerDescription": null,
  31. "taskPractitioner": "1111",
  32. "taskId": "472718072751329281",
  33. "taskName": "代理商申請",
  34. "actId": "service",
  35. "actName": "代理商申請",
  36. "process_defined_id": null,
  37. "process_instance_id": null,
  38. "taskAuditStatus": "approving",
  39. "taskStatus": null,
  40. "logisticsNum": null
  41. },
  42. {
  43. "processStartUser": "1111",
  44. "taskCreateTime": 1590634371237,
  45. "taskCompleteTime": null,
  46. "taskHandler": "劉智慧",
  47. "taskHandlerType": null,
  48. "taskHandlerOpinion": null,
  49. "taskHandlerLink": null,
  50. "taskHandlerDescription": null,
  51. "taskPractitioner": "劉智慧",
  52. "taskId": "472718072835215362",
  53. "taskName": "商務審批",
  54. "actId": "business",
  55. "actName": "商務審批",
  56. "process_defined_id": null,
  57. "process_instance_id": null,
  58. "taskAuditStatus": "approving",
  59. "taskStatus": null,
  60. "logisticsNum": null
  61. },
  62. {
  63. "processStartUser": "1111",
  64. "taskCreateTime": 1590634371247,
  65. "taskCompleteTime": null,
  66. "taskHandler": "Lisa",
  67. "taskHandlerType": null,
  68. "taskHandlerOpinion": null,
  69. "taskHandlerLink": null,
  70. "taskHandlerDescription": null,
  71. "taskPractitioner": "Lisa",
  72. "taskId": "472718072860381187",
  73. "taskName": "商務審批",
  74. "actId": "business",
  75. "actName": "商務審批",
  76. "process_defined_id": null,
  77. "process_instance_id": null,
  78. "taskAuditStatus": "approving",
  79. "taskStatus": null,
  80. "logisticsNum": null
  81. },
  82. {
  83. "processStartUser": "1111",
  84. "taskCreateTime": 1590634371253,
  85. "taskCompleteTime": null,
  86. "taskHandler": "KiKi",
  87. "taskHandlerType": null,
  88. "taskHandlerOpinion": null,
  89. "taskHandlerLink": null,
  90. "taskHandlerDescription": null,
  91. "taskPractitioner": "KiKi",
  92. "taskId": "472718072885547009",
  93. "taskName": "商務審批",
  94. "actId": "business",
  95. "actName": "商務審批",
  96. "process_defined_id": null,
  97. "process_instance_id": null,
  98. "taskAuditStatus": "approving",
  99. "taskStatus": null,
  100. "logisticsNum": null
  101. },
  102. {
  103. "processStartUser": "1111",
  104. "taskCreateTime": 1590634371258,
  105. "taskCompleteTime": null,
  106. "taskHandler": "",
  107. "taskHandlerType": "",
  108. "taskHandlerOpinion": "",
  109. "taskHandlerLink": "",
  110. "taskHandlerDescription": "",
  111. "taskPractitioner": "測試商務",
  112. "taskId": "472718072906518531",
  113. "taskName": "商務審批",
  114. "actId": "business",
  115. "actName": "商務審批",
  116. "process_defined_id": null,
  117. "process_instance_id": null,
  118. "taskAuditStatus": "approving",
  119. "taskStatus": "approvePending",
  120. "logisticsNum": ""
  121. }
  122. ]

在js中對list數組進行Map數據結構的改造


    
    
    
            
  1. //Map數組中的key集合數組
  2. $ctrl. allActList = $ctrl. follow. map( function( item){
  3. return item. actName
  4. })
  5. // key數組去重
  6. $ctrl. equalList = _. uniq($ctrl. allActList)
  7. // 創建Map並set數據
  8. $ctrl. mapList = new Map()
  9. $ctrl. equalList. map( function( item){
  10. var valueList = []
  11. $ctrl. follow. map( function( e){
  12. if(e. actName == item)
  13. valueList. push(e)
  14. $ctrl. mapList. set(item,valueList)
  15. })
  16. })

對應的HTML中的代碼

其中在HTML中可以通過$ctrl.mapList.get()獲取值


    
    
    
            
  1. <div ng-repeat="item in $ctrl.equalList">
  2. <div style="position:relative;overflow:hidden">
  3. <div class="app-line" style="top:20px"> </div>
  4. <div class="dib renew-re" style="top:-4px">
  5. <i class="iconfont icon-time circle-gray" ng-show="!item.taskCompleteTime"> </i>
  6. <i class="iconfont icon-zhengque circle-yellow" ng-show="item.taskCompleteTime"> </i>
  7. </div>
  8. <div class="dib ml20 vertical-top" style="max-width:90%">
  9. <p>{{item}} </p>
  10. <p ng-repeat="e in $ctrl.mapList.get(item)">處理人:{{e.taskHandler}}
  11. <span ng-show="!e.taskHandler">等待審核 </span>
  12. <span ng-show="e.taskHandlerType=='approveReturned'">已退回 </span>
  13. <span ng-show="e.taskHandlerType=='approveWithdrawed'">已撤回 撤回環節:{{e.taskHandlerLink}}
  14. </span>
  15. <span>{{e.taskHandlerOpinion}} </span>
  16. <span class="ml10">{{e.taskCompleteTime | date:'yyyy-MM-dd HH:mm:ss'}} </span>
  17. </p>
  18. </div>
  19. </div>
  20. </div>

循環list套list比較慢,時間復雜度是m*n,list里面用Map取比較快,時間復雜度m+n。

https://blog.csdn.net/adoreen/article/details/106401345?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-1-106401345.pc_agg_new_rank&utm_term=js%E5%90%91list%E6%95%B0%E7%BB%84%E6%B7%BB%E5%8A%A0map&spm=1000.2123.3001.4430


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM