在数组中搜索以查看每个对象使用了多少次

时间:2018-09-03 16:17:49

标签: arrays typescript for-loop angular6

我们有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}

然后我将能够使用它动态地构建我的表。这将使我们能够在数据库级别添加答案。

唯一的问题是我有思想锁,无法考虑如何构建此结构。

1 个答案:

答案 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;
        });
    }