假设sections 数组中的每个section 是question 项的数组,您可以简单地将$.each() 的value 属性定位为您的别名为section:
var sections = [
[{ questionId: 1 }, { questionId: 2 }, { questionId: 3 }], //questions for section 1
[{ questionId: 1 }, { questionId: 2 }, { questionId: 3 }, { questionId: 4 }, { questionId: 5 }], //questions for section 2
[{ questionId: 1 }, { questionId: 2 }] //questions for section 3
];
$.each(sections, function(i, section) {
console.log("section " + i + ":");
$.each(section, function(j, question) {
console.log("\t" + question.questionId);
});
});
jsfiddle 演示一些示例功能
您希望通过在每个部分中包含一系列问题对象/项目来构建部分。如果您需要一个完全不同的结构,其中有一个单独的部分数组和单独的问题数组,则需要更改此功能,因为您需要通过标识符将给定问题与给定部分相关联。
以下是使用filter() 实现此目的的一种方法示例:
var sections = [
{ sectionId: 1 },
{ sectionId: 2 },
{ sectionId: 3 },
{ sectionId: 4 },
{ sectionId: 5 },
];
var questions = [
{ questionId: 1, sectionId: 1 },
{ questionId: 2, sectionId: 1 },
{ questionId: 3, sectionId: 2 },
{ questionId: 4, sectionId: 3 },
{ questionId: 5, sectionId: 1 },
{ questionId: 6, sectionId: 4 },
{ questionId: 7, sectionId: 1 },
{ questionId: 8, sectionId: 5 }
];
console.log("**********Example 2**********")
$.each(sections, function(index, section) {
console.log("Section " + section.sectionId + ":");
var relatedQuestions = questions.filter(function(question) {
return question.sectionId === section.sectionId;
});
$.each(relatedQuestions, function(index, question) {
console.log("\tQuestion " + question.questionId);
});
});