我有一个这样的JSON列表:
{
"StatTrak™ AK-47 | Fire Serpent (Field-Tested)": 701,
"StatTrak™ AK-47 | Fire Serpent (Minimal Wear)": 1050,
"StatTrak™ AK-47 | Fire Serpent (Well-Worn)": 450.15,
"StatTrak™ AK-47 | Fire Serpent (Factory New)": 3300,
"AK-47 | Fire Serpent (Field-Tested)": 195.8,
"StatTrak™ AK-47 | Fire Serpent (Battle-Scarred)": 369.58,
"AK-47 | Fire Serpent (Factory New)": 750,
}如果用户在框中键入example:ak fire serpent,则它将仅返回所有ak fire serpents
以下是我尝试使用的代码:
var itemWanted = 'ak fire serpent';
var message = itemWanted.split(" ");
for(var price in prices){
var splitfast = price.split(" ");
if(price.toLowerCase().includes(message[1].toLowerCase())){
if(splitfast[1].toLowerCase().includes(message[0].toLowerCase())){
console.log(price + ' - ' + prices[price]);
}
}
}它拆分用户消息并试图找到它,但它现在会尝试按名称fire进行搜索,例如,其中有大约30个名称为fire的项目,所以我添加了检查武器类型的代码的第二部分,但随后它只返回给我StatTrak,因为它检查1,所以最好的方法是什么,因为拆分似乎不起作用。
发布于 2017-04-07 23:12:55
显然,我不知道您从哪里获得JSON文件,但是如果您有机会在不花费大量精力的情况下稍微更改一下JSON格式,我会尝试构建稍微“智能”一点的JSON结构。
例如:
{
"Weapon Type": {
"StatTrak™ AK-47" : {
"Fire Serpent": {
"(Field-Tested)": 1050,
"(Factory New)" : 50
}
}
"AK-47" :
"Fire Serpent": {
"(Field-Tested)": 1050,
"(Factory New)" : 50
}
}
}它可能会帮助您以更流畅和直观的方式浏览JSON文件。
发布于 2017-04-07 23:18:47
您可以像下面的示例一样,非常容易地遍历对象的键,并查看是否找到任何匹配项:
var json = {
'apple pear banana': 1,
'apple peach banana': 2,
'apple grape banana': 3,
'apple pear peach': 4,
'apple grape peach': 5,
}
var matches = 'peach grape'.split(' ');
var result = Object.keys( json ).filter(function( key ){
return !!(matches.find(function( match ){
return key.indexOf( match ) >= 0
}));
});
console.log( result, result.map(key => json[key]) );
https://stackoverflow.com/questions/43278372
复制相似问题