Enhance _extractVocabFromExercises method for robust input handling

- Added checks to ensure the exercises parameter is an array, with console warnings for null, undefined, or non-array inputs.
- Implemented logic to convert non-array objects with a length property into arrays, improving flexibility in handling various input types.
- Enhanced error logging to provide clearer insights when input conversion fails, aiding in debugging and user feedback.
This commit is contained in:
Torsten Schulz (local)
2026-01-20 00:00:57 +01:00
parent 963e0c906c
commit cf97a3ba5e

View File

@@ -414,9 +414,28 @@ export default {
} }
}, },
_extractVocabFromExercises(exercises) { _extractVocabFromExercises(exercises) {
// Sicherstellen, dass exercises ein Array ist
if (!exercises) {
console.warn('[_extractVocabFromExercises] exercises ist null/undefined:', exercises);
return [];
}
// Konvertiere zu Array falls nötig
let exercisesArray = exercises;
if (!Array.isArray(exercises)) {
console.warn('[_extractVocabFromExercises] exercises ist kein Array, versuche zu konvertieren:', exercises);
// Falls es ein Objekt mit length ist, versuche es zu konvertieren
if (typeof exercises === 'object' && exercises.length !== undefined) {
exercisesArray = Array.from(exercises);
} else {
console.error('[_extractVocabFromExercises] Kann exercises nicht zu Array konvertieren:', exercises);
return [];
}
}
const vocabMap = new Map(); const vocabMap = new Map();
exercises.forEach((exercise, idx) => { exercisesArray.forEach((exercise, idx) => {
try { try {
console.log(`[importantVocab] Verarbeite Übung ${idx + 1}:`, exercise.title); console.log(`[importantVocab] Verarbeite Übung ${idx + 1}:`, exercise.title);
// Extrahiere aus questionData // Extrahiere aus questionData