繁体   English   中英

Javascript 对嵌套数组对象进行排序

[英]Javascript sort nested array objects

我需要返回相同的数组,相同的结构,

我需要在每个数组 object 内循环并重新排序规划诊断。

我需要将数组内容按 outputStatusId 从最低到最高排序。

它看起来很简单,我做了很多尝试,但找不到任何解决方案。

像这样:

var myArray = [
  {
    "objectName":"ROME",
    "planningProcess": [
      {
        "objectName":"MOSCA",
        "workflowProcessId": 1066,
        "planningDiagnosis": [
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 3,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 1,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 2,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          }
        ],
      },

    ]
  },
  {
    "objectName":"ROME",
    "planningProcess": [
      {
        "objectName":"MOSCA",
        "workflowProcessId": 1066,
        "planningDiagnosis": [
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 3,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 1,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 2,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          }
        ],
      },

    ]
  },
  {
    "objectName":"ROME",
    "planningProcess": [
      {
        "objectName":"MOSCA",
        "workflowProcessId": 1066,
        "planningDiagnosis": [
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 1,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 1,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          },
          {
            "objectName":"NEWYORK",
            "outcomeStatusId": 1,
            "planningInterventions": [
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              },
              {
                "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g",
              }
            ],

          }
        ],
      },

    ]
  }
  ]

// 我的解决方案但不工作

 const f = myArray.map(p=>{
      p.planningProcess.map(pr=>{
        return pr.planningDiagnosis.sort((a,b)=>a.outcomeStatusId - b.outcomeStatusId)
      })
      return p;
    });
    console.log(f)

这能解决您的问题吗?

对数组进行排序

pr.planningDiagnosis.sort((a, b) => a.outcomeStatusId - b.outcomeStatusId)

然后返回排序后的数组。

 var myArray = [{ "objectName": "ROME", "planningProcess": [{ "objectName": "MOSCA", "workflowProcessId": 1066, "planningDiagnosis": [{ "objectName": "NEWYORK", "outcomeStatusId": 3, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 1, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 2, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], } ], }, ] }, { "objectName": "ROME", "planningProcess": [{ "objectName": "MOSCA", "workflowProcessId": 1066, "planningDiagnosis": [{ "objectName": "NEWYORK", "outcomeStatusId": 3, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 1, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 2, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], } ], }, ] }, { "objectName": "ROME", "planningProcess": [{ "objectName": "MOSCA", "workflowProcessId": 1066, "planningDiagnosis": [{ "objectName": "NEWYORK", "outcomeStatusId": 1, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 1, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], }, { "objectName": "NEWYORK", "outcomeStatusId": 1, "planningInterventions": [{ "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", }, { "name": "rivalutare rischio lesioni ri-compilando Braden a 7 g", } ], } ], }, ] } ] myArray.forEach(p => { p.planningProcess.forEach(pr => { // below line will sort in place and need not return anything pr.planningDiagnosis.sort((a, b) => a.outcomeStatusId - b.outcomeStatusId) }) }); console.log(myArray)
 .as-console-wrapper { max-height: 100vh;important; }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM