我定义了这个结构:
var game_list = {
1: {name:'Vampires hunter', description:'The best vampires game in the world'},
2: {name:'Christmas vampires', description:'The best vampires game in the world'},
3: {name:'Fruit hunter', description:'The best vampires game in the world'},
4: {name:'The fruitis', description:'The best vampires game in the world'},
5: {name:'james bond', description:'The best vampires game in the world'},
6: {name:'Vampires hunter', description:'The best vampires game in the world'},
};
我需要做的是(使用普通的js)是创建一个函数,在该结构中找到一个字符串(用户可以使用small或caps),func将有2个参数,数组本身和要查找的字符串。
任何帮助都将非常感激。
答案 0 :(得分:1)
考虑到数据的结构,将对象存储在数组中会更有意义,而不是像现在一样将它嵌套在对象中。
话虽如此,您可以使用此函数在结构中查找字符串。它返回包含字符串的对象。
function findString(obj, str) {
str = str.toLowerCase();
var results = [];
for(var elm in obj) {
if(!obj.hasOwnProperty(elm)){
continue;
}
for (var key in obj[elm]) {
if (obj[elm].hasOwnProperty(key) && obj[elm][key].toString().toLowerCase().indexOf(str) > -1) {
results.push(obj[elm]);
}
}
}
return results.length > 1 ? results : results[0];
}