为数组的JavaScript树创建forEach语句

为数组的JavaScript树创建forEach语句,javascript,arrays,database,string,web,Javascript,Arrays,Database,String,Web,首先,我想说我是新的堆栈溢出,所以。如果我的问题有错误,请注意我是新手无论如何,因此我正在创建一个纯JavaScript数据库,并使用与以下格式相同的字符串数组: var SampleArray = [{ "Food" : [ "banana", "Strawberry", "grapes" ], "Vegitables" : [ "Carrot", "Peppers" ], "Words" : [ "hello", "Goodbye", "Grapes" ], "Adjecti

首先,我想说我是新的堆栈溢出,所以。如果我的问题有错误,请注意我是新手无论如何,因此我正在创建一个纯JavaScript数据库,并使用与以下格式相同的字符串数组:

var SampleArray = [{
  "Food" : [ "banana", "Strawberry", "grapes" ],
  "Vegitables" : [ "Carrot", "Peppers" ],
  "Words" : [ "hello", "Goodbye", "Grapes" ],
  "Adjectives" : [ "Good", "First" ]
}]
希望您能理解数组部分的要点,但真正的问题是,如何创建一个搜索框,使用类似于forEach语句的内容来查找数组中的某个变量,如
“good”

注释/编辑
我已将问题移至此处

根据您问题中更新的数据库格式,您可以基于以下内容实现基本搜索:

var SampleArray=[{
“食品”:[“香蕉”、“草莓”、“葡萄”],
“蔬菜”:[“胡萝卜”、“辣椒”],
“单词”:[“你好”、“再见”、“葡萄”],
“形容词”:[“好”,“第一”]
}]
函数搜索数据库(查询){
//对于数组中的每个对象
for(SampleArray的变量对象){
//获取对象的列表值
变量列表=对象。值(对象)
//对于每个对象列表
for(列表的变量列表){
//对于列表中的每一项
用于(列表的var项){
//查找项匹配查询。本地转换为小写为
//避免区分大小写的问题
if(item.toLowerCase().indexOf(query.toLowerCase())!=-1){
回波信号
}
}
}
}
}
log('search for good',searchDatabase('good')?'found':'notfound')

console.log('search for bad',searchDatabase('bad')?'found':'not found')
您的数据库格式不正确-您不能以这种方式混合数组项和键/值对:
“Food:”香蕉“,”草莓“,
我查看了一个名为w3schools的网站,它们显示了这样的数组。但是,即使我必须更改数组布局,是否有一种等效的方法可以实现我的目标?我刚刚将您的问题更新为有效的javascript语法。这就是你想要的格式吗?是的,但是你能在数组中,在数组内部放入多少东西没有限制吗?不是真的-技术上,唯一的限制是进程/计算机内存。如果查询是“good”,那么您希望搜索返回什么?是的,我明白了,我只是没想到我在创建数据库时,结果非常好,这要感谢你们,所以谢谢@不客气-很高兴我能帮上忙:-)哦,在任何人放弃这个问题之前,如果有一个数组像“sample”:[“toy”:“car”,“hello”:“再见”],我想找到与“toy”@ridleynolson一起的变量,该变量也可以工作,但是您需要替换
(即在玩具和汽车之间,以及,你好和再见)使用
字符,然后简单地将其添加到数据库中,并使用回答中提供的功能搜索say“car”,因此您是说我不能做类似“song”:[“artist”:“,“mp3source”:“]