Kojarzenie nazw obiektów

Próbuję stworzyć system, który uczy ludzi języka. Użytkownik wpisze dane zdanie w języku docelowym i sprawdzi, czy poprawnie je wpisał.

Chcę dać im bank słów dla bieżącego zadania (aka zdanie), które są podane.

Słowa w banku słów powinny być powiązane z bieżącym zadaniem. Na obrazku słowa w kolorze zielonym są częścią zdania pierwszego, a czerwone są częścią zdania drugiego.

Aby to zrobić, umieściłem zadania w obiekcie. Klucze to nazwy zadań, a wartości to zdania.

var tasks = {
    "task1" : "Ni Hao. Wo Shi Dan.",
    "task2" : "Xie Xie. Bu Ke Qi."
}

Słowa banku słów są przechowywane w obiekcie ... Próbuję skojarzyć każdy zestaw słów z odpowiednią nazwą zadania. Ale muszę też używać klawiszy jako języka obcego, a wartości jako angielskiego. Więc nie mogę użyćtask name jako klucz ... Więc mam problem z powiązaniem właściwego banku słów z danym zadaniem według nazwy klucza.

var words = {
    "task1" :
    {
        'Ni'    : 'you',
        'Wo'    : 'I',
        'Hao'   : 'good',
        'Shi'   : 'am'  
    },
    "task2" :
    {
        'Xie Xie' : 'Thanks',
        'Bu' : 'No',
        'Ke Qi' : 'Manners'
    }
}

var phrases = {
    "task1" :
    {
        'Ni Hao'    : 'Hello',
        'Wo Shi'    : 'I am'    
    },
    "task2" :
    {
        'Xie Xie' : 'Thanks',
        'Bu Ke Qi' : 'You are welcome'
    }
}

Aby przejść do następnego zadania po pomyślnym wpisaniu przez użytkownika pierwszego zdania, zapisałem nazwy zadań w kolejce zadań pod nazwą zadania ...

var taskQueue = [];
taskQueue.push("task1", "task2");
var i = 0;

//Match the task name from taskQueue with the correct task
function task() {
    for (key in tasks) {
        return tasks[taskQueue[i]];
    }
}

Moim celem jest dopasowanie bieżącej nazwy zadania w kolejce zadań z odpowiednim kluczem w poluwords obiekt ... ale tak jak powiedziałem, używam już kluczy do tego, aby przechowywać język obcy.

function bank() {
    $(".wordBank_Words").empty();
    $(".wordBank_Hint").empty();
    for (obj in words) {
        for (key in words[obj]) {
            if (words[obj] == taskQueue[i]) {
                $(".wordBank_Words").append("<li><b>" + key + "</b>: " + words[obj][key] + "</li>");
            }
        }
    }
    for (obj in phrases) {
        for (key in phrases[obj]) { 
            $(".wordBank_Hint").append("<li><b>" + key + "</b>: " + phrases[obj][key] + "</li>");
        }
    }
}

Tutaj, gdy dane wejściowe użytkownika odpowiadają wartości klucza zadania (zdanie),i jest zwiększany, aby przejść do następnego zdania:

function playerResponse(input) {
    bank();
    if (input == task()) {  
        i++;
        $("#responseVerify").html("Great job");
        document.getElementById('response').value = '';
    }
    else {
        $("#responseVerify").html("Keep going...");
    }
}

Jak więc mogę skojarzyć te klucze wedługimię aby obiekty zadania i klucze obiektu WordBank pasowały do ​​danego zadania?

Przepraszam, jeśli to jest mylące.

Dzięki!

questionAnswers(0)

yourAnswerToTheQuestion