Поиск внутри массива, чтобы увидеть, сколько раз использовался каждый объект - PullRequest
0 голосов
/ 03 сентября 2018

У нас есть 2 массива, один - это список ответов [], он содержит все возможные ответы на вопросы.

мы разбили список ответов [] на 6 отдельных массивов {пол, возраст, инвалидность, этническое происхождение, религия, сексуальная ориентация}. Для этой проблемы, если мы используем гендерный список [].

Основным массивом является 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;
}

что мы хотим сделать - это проверить в sexList [], который также имеет тип IAnswer

export interface IAnswers {
    AnswerKey: number;
    QuestionKey: number;
    Name: string;
    Description: string;
}

так что я хочу сделать для каждого типа гендерного списка [i] .AnswerKey, я хочу увидеть, сколько людей выбрали его в EqualityAnswers [].

Первоначально я смотрел на циклическую пересылку по полу GenList [], а затем фильтровал EqualityAnswers []. Gender.AnswerKey и возвращал длину.

Проблема заключается в назначении этого массива ResourceList

export class ResourceList {
    Name: string;
    Count: number;
}

под названием гендерный счет: ResourceList [];

Идея состоит в том, что гендерный список будет {имя: "женщина", количество: 2}, {имя: "мужчина", количество: 5}, {имя: "предпочитаю не говорить", количество: 3}

тогда я смогу использовать это для динамического построения своих таблиц. Это позволит нам добавлять ответы на уровне базы данных.

Единственная проблема в том, что у меня есть блокировка сознания, и я не могу думать, как это структурировать.

1 Ответ

0 голосов
/ 06 сентября 2018

Так что с помощью Рикардо, за что я очень благодарен, мне удалось получить эту работу благодаря его совету.

 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;
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...