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:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user