我们有2个数组,一个是AnswersList [],它包含所有可能的问题答案。
我们将AnswersList []分为6个单独的数组{性别,年龄,残疾,种族,宗教,性取向}。对于这个问题,如果我们使用genderList []。
主数组是EqualityAnswers [],其类型为IApplicantAnswers。
import {IAnswers} from "../Enum/answer.model";
export interface IApplicantAnswers {
ApplicantAnswersKey: number;
CompetitionKey: number;
Gender: IAnswers;
Age: IAnswers;
SexualOrientation: IAnswers;
Religion: IAnswers;
EthnicOrigin: IAnswers;
Disability:IAnswers;
}
我们想要做的是检查性别列表[],它也是IAnswer类型
export interface IAnswers {
AnswerKey: number;
QuestionKey: number;
Name: string;
Description: string;
}
所以我要针对每种类型的maleList [i] .AnswerKey,我想看看有多少人在EqualityAnswers []中选择了它。
最初,我正在看遍性别列表[],然后过滤EqualityAnswers []。Gender.AnswerKey并返回长度。
问题是将其分配给ResourceList数组
export class ResourceList {
Name: string;
Count: number;
}
称为sexCountList:ResourceList [];
这个想法是,genderCountList将是{name:“ female”,count:2},{name:“ male”,count:5},{name:“ prefer not say”,count:3} >
然后我将能够使用它动态地构建我的表。这将使我们能够在数据库级别添加答案。
唯一的问题是我有思想锁,无法考虑如何构建此结构。
答案 0 :(得分:1)
因此,在里卡多(Ricardo)的帮助下,我非常感激,我设法从他的建议中得到了帮助。
getListOfGendersWithCount(): void {
var self = this;
this.genderList.map(function (item, index) {
var gender = new ResourceList();
gender.Name = item.Description;
gender.Count = self.equalityData.filter(x => x.Gender.AnswerKey === item.AnswerKey).length;
self.genderCountList.push(gender);
return item;
});
}