Javascript 关联对象名称
我试图创建一个教人们语言的系统。用户将用目标语言键入给定的句子,然后检查他们是否键入了正确的句子 我想给他们一个当前任务的词库(又名句子) 单词库中的单词应与当前任务相关联。在图像中,绿色框中的单词是第一句的一部分,红色框中的单词是第二句的一部分 为此,我将任务放在一个对象中。键是任务名称,值是句子Javascript 关联对象名称,javascript,arrays,object,Javascript,Arrays,Object,我试图创建一个教人们语言的系统。用户将用目标语言键入给定的句子,然后检查他们是否键入了正确的句子 我想给他们一个当前任务的词库(又名句子) 单词库中的单词应与当前任务相关联。在图像中,绿色框中的单词是第一句的一部分,红色框中的单词是第二句的一部分 为此,我将任务放在一个对象中。键是任务名称,值是句子 var tasks = { "task1" : "Ni Hao. Wo Shi Dan.", "task2" : "Xie Xie. Bu Ke Qi." } 单词库单词存储在一
var tasks = {
"task1" : "Ni Hao. Wo Shi Dan.",
"task2" : "Xie Xie. Bu Ke Qi."
}
单词库单词存储在一个对象中。。。我试图将每个单词库集与各自的任务名称关联起来。但我也需要使用键作为外语,使用值作为英语。因此,我不能使用任务名称
作为键。。。因此,我无法通过关键字名称将正确的词库与给定任务关联起来
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'
}
}
要在用户成功键入第一句话后移动到下一个任务,我已按任务名称将任务名称存储在任务队列中
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]];
}
}
我的目标是将taskQueue中的当前任务名称与words
对象中的相应关键字相匹配。。。但是就像我说的,我已经在使用这个键来存储外语了
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>");
}
}
}
那么,我如何通过name关联这些键,以便tasks对象和wordBank对象的键与给定任务匹配呢
抱歉,这让人困惑
谢谢 与使用javascript前端的更健壮的服务器端解决方案相比,您尝试使用javascript来完成这一切有什么原因吗?只是想了解您的需求以便我能提供帮助,我觉得对象存储或本体更适合您的应用程序app@Matt617没有特别的原因。我只是想要一个快速的模型,看看它是否会工作,并得到一个概念。你是说把这些词放进数据库会更好吗?你能解释一下“目标存储”和“本体论”是什么意思吗?我认为这样会更简洁,然后你就可以为单词或它们的元数据编写查询,而不是迭代地搜索对象。本体可能有点多,但mongDB可能会对您有所帮助。。。jeeze即使是一个mysql表也可能会有帮助。我绞尽脑汁想知道如何使用db。我猜一个句子表可以查询一个单词表?然后使用jQuery$.get向用户提供反馈?另外,您知道另一种方法吗?我可以指定给用户的特定句子,而无需为每个句子提供db条目?我宁愿从vocab表中动态地抓取vocab,并根据句子的需要排列它们。这可能会起作用,或者您可以在MongoDB和NodeJS中使用类似的JS对象,并使用JQuery.AJAX跨这些文档进行查询
function playerResponse(input) {
bank();
if (input == task()) {
i++;
$("#responseVerify").html("Great job");
document.getElementById('response').value = '';
}
else {
$("#responseVerify").html("Keep going...");
}
}