我有一个像这样的JSON列表:
mahela-7829899075.jpg
C:\xampp\tmp\php286A.tmp
如果用户在框示例中输入{
"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,
}
,那么它只会返回所有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]);
}
}
}
进行搜索,但其中有~30个名称为fire
的项目,所以我添加了第二部分检查武器类型的代码,但是它只返回fire
个,因为它检查StatTrak
所以最好的方法是什么,因为拆分似乎没有工作。
答案 0 :(得分:0)
显然,我不知道你从哪里获得JSON文件,但是如果你有机会稍微改变JSON格式而不需要花费太多精力,我会尝试构建一下JSON结构#34;更聪明&#34 ;.
例如:
{
"Weapon Type": {
"StatTrak™ AK-47" : {
"Fire Serpent": {
"(Field-Tested)": 1050,
"(Factory New)" : 50
}
}
"AK-47" :
"Fire Serpent": {
"(Field-Tested)": 1050,
"(Factory New)" : 50
}
}
}
它可能只是帮助您以更直观的方式更顺畅地运行JSON文件。
答案 1 :(得分:0)
您可以轻松地运行对象的键,如下例所示,并查看是否找到匹配项:
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]) );