return 具有过滤子数组的父对象
return parent object with filtered child array
示例数据:
{
"QuestionId": 2,
"QuestionName": "Question2",
"QuestionTypeId": 2,
"QuestionTypeName": "CheckBoxList",
"Choices": [{
"ChoiceId": 7,
"ChoiceName": "Choice1",
"Answer": "7"
},
{
"ChoiceId": 8,
"ChoiceName": "Choice2",
"Answer": ""
},
{
"ChoiceId": 9,
"ChoiceName": "Choice3",
"Answer": ""
},
{
"ChoiceId": 10,
"ChoiceName": "Choice4",
"Answer": "10"
}
]
}
根据示例数据,如何通过使用下划线或任何更好的 javascript 方法保持相同结构的过滤选项返回? Choice 是根据 Choice.Answer 过滤的。答案必须有值。
如果您想过滤掉答案为空的选项,请使用 Array.filter
- 我还假设您的上述数据结构在一个数组(一组问题)中
//Loop over each question
for (var i = 0; i < questions.length; i++) {
//For each question, filter the "Choices" array to not include empty Answers
questions[i].Choices = questions[i].Choices.filter(function(choice) {
return choice.Answer != ""
})
}
示例数据:
{
"QuestionId": 2,
"QuestionName": "Question2",
"QuestionTypeId": 2,
"QuestionTypeName": "CheckBoxList",
"Choices": [{
"ChoiceId": 7,
"ChoiceName": "Choice1",
"Answer": "7"
},
{
"ChoiceId": 8,
"ChoiceName": "Choice2",
"Answer": ""
},
{
"ChoiceId": 9,
"ChoiceName": "Choice3",
"Answer": ""
},
{
"ChoiceId": 10,
"ChoiceName": "Choice4",
"Answer": "10"
}
]
}
根据示例数据,如何通过使用下划线或任何更好的 javascript 方法保持相同结构的过滤选项返回? Choice 是根据 Choice.Answer 过滤的。答案必须有值。
如果您想过滤掉答案为空的选项,请使用 Array.filter
- 我还假设您的上述数据结构在一个数组(一组问题)中
//Loop over each question
for (var i = 0; i < questions.length; i++) {
//For each question, filter the "Choices" array to not include empty Answers
questions[i].Choices = questions[i].Choices.filter(function(choice) {
return choice.Answer != ""
})
}