Tengo una tabla que rastrea todas las respuestas de los usuarios a un cuestionario. Esta consulta obtendrá con éxito todos los datos de esa tabla y los colocará en mi matriz TotalQuizResponses que luego uso en mi opinión:
this.totalQuizResponses = ((await QuizResponsesService.index()).data)Sin embargo, también me gustaría mostrar el número total de coincidencias en mi vista. Sé que esta consulta SQL obtiene con éxito ese número total de coincidencias de los datos de la tabla:
SELECT count(*) FROM QuizResponses A, QuizResponses B WHERE A.answerKey = B.answerKey AND A.QuizId = B.QuizId AND A.UserId < B.UserIdNo quiero tener que hacer otra llamada de servicio solo para obtener el recuento de los datos filtrados que ya tengo dentro de mi vista. ¿Hay alguna manera de filtrar de alguna manera los datos desde la vista? No estoy seguro de cómo replicar esta lógica usando JavaScript puro. Gracias por leer.
Si necesita exactamente la misma consulta sobre datos sin filtrar:
countResponses(this.totalQuizResponses); function countResponses(quizData) { let counter = 0; for (const quizResponseA of quizData) { for (const quizResponseB of quizData) { if (quizResponseA === quizResponseB) { continue; } const isSameAnswerKey = quizResponseA.answerKey === quicResponseB.answerKey; const isSameQuizId = quizResponseA.QuizId === quizResponseB.QuizId; const isSameUser = quizResponseA.UserId === quizResponseB.UserId; if (isSameAnswerKey && isSameQuizzId && isSameUser) { counter++; } } } return counter; } Si ya filtró sus datos con la misma consulta , this.totalQuizResponses.length es lo mismo que un contador para todos los datos que tiene localmente.