[英]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.