JavaScript数据库关联
我一直在尝试在用户选择的答案和对象属性名称之间“关联”,以便如果两者匹配,那么它将显示其中的内容 我的程序是一个配方查找程序,它返回一个由用户选择的成分组成的配方。 我的代码当前看起来像: //属性是成分,值是包含这些成分的配方。地图将自动生成JavaScript数据库关联,javascript,database,correlation,Javascript,Database,Correlation,我一直在尝试在用户选择的答案和对象属性名称之间“关联”,以便如果两者匹配,那么它将显示其中的内容 我的程序是一个配方查找程序,它返回一个由用户选择的成分组成的配方。 我的代码当前看起来像: //属性是成分,值是包含这些成分的配方。地图将自动生成 ``var map = { "pork" : [recipe1, recipe2, ...], "beef" : [], "chicken" :[], } //这将从dom中获取用户选择 var cucumber = speci
``var map = {
"pork" : [recipe1, recipe2, ...],
"beef" : [],
"chicken" :[],
}
//这将从dom中获取用户选择
var cucumber = specificVegetable[7];
var lemon = specificFruits[0];
//然后此代码查找配方的交叉点(使用多种成分的配方)
//我被困在这里了
function check(){
var both = intersect(recipiesWithLemon, recipiesWithCucumber);
if ( cucumber.checked && lemon.checked){
for (var stuff in map){
if(stuff="cucumber" && stuff="lemon"){
return both;
}
}
}
}
check();
所以基本上我试着做的是我做了一个交集,然后如果用户选择的是柠檬和黄瓜,那么看看地图对象中的属性。如果属性的名称等于确切的字符串,则返回两者。这是计划,但代码不起作用,我不知道如何修复它
我的计划是为用户可能做出的每个可能的结果编写代码,因此我需要找到用户选择和存储配方的地图之间的相关性。我意识到这不是最有效的方法,但我很难找到另一种方法
谢谢你的帮助。我正在使用开源项目来简化这个过程。 我还将您的映射更改为JSON对象数组。如果您必须让map对象不作为数组,请告诉我。我将更改示例代码
var映射=[
{“猪肉”:['recipe1','recipe2']},
{“牛肉”:['recipe3','recipe4']},
{“peach”:['recipe5','recipe6']},
{“胡萝卜”:['recipe7','recipe8']}
];
变量selectedFruit=‘peach’;
var selectedvegie=‘胡萝卜’;
变量选择=[SelectedFrient,selectedVeggie];
var result=jinqJs().from(map).where(函数(行){
for(第行中的var f){
if(选择项索引of(f)>-1)
返回true;
}
返回false;
}).select();
document.body.innerHTML+=''+JSON.stringify(结果,null,2)+'
'代码>
谢谢你的回答,但我只能真正理解javascript
function check(){
var both = intersect(recipiesWithLemon, recipiesWithCucumber);
if ( cucumber.checked && lemon.checked){
for (var stuff in map){
if(stuff="cucumber" && stuff="lemon"){
return both;
}
}
}
}
check();