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!