Javascript/JSON忽略未定义

Javascript/JSON忽略未定义,javascript,html,json,Javascript,Html,Json,我想知道如何忽略JSON中未定义的对象 我有两个json文件,第一个是'inventory.js',第二个是'prices.js',我已经用ajax连接了它们。现在,如果运行循环检查库存中的价格,则“inventory.js”中的对象在“prices.js”中不存在,因此我得到一个错误: 'Uncaught TypeError:无法读取未定义的'2016年服务奖章'属性' 我已尝试通过以下方法来预防: if (prices.match(undefined)) { prices = 0 }

我想知道如何忽略JSON中未定义的对象

我有两个json文件,第一个是'inventory.js',第二个是'prices.js',我已经用ajax连接了它们。现在,如果运行循环检查库存中的价格,则“inventory.js”中的对象在“prices.js”中不存在,因此我得到一个错误:

'Uncaught TypeError:无法读取未定义的'2016年服务奖章'属性'

我已尝试通过以下方法来预防:

if (prices.match(undefined)) {
    prices = 0
}
但它不起作用

以下是HTML代码:

$.ajax({
    url: 'InventoryTemi1337_28_12_2020.json',
    dataType: 'json',
    type: 'get',
    contentType: "text/html; charset=UTF-8",
    cache: false,
    success: function(data){
        $(data.rgInventory).each(function(index, value, key){  
            for(const [key, value] of Object.entries(data.rgInventory)){
                var id = value['classid'] + '_' + value['instanceid']
                var name = data['rgDescriptions'][id]['market_hash_name']
                var img = 'https://steamcommunity-a.akamaihd.net/economy/image/' + data['rgDescriptions'][id]['icon_url']
               
//--------------------------------              
               
$.ajax({
url: 'prices.json',
dataType: 'json',
type: 'get',
contentType: "text/html; charset=UTF-8",
cache: false,
success: function(dataa){
    $(dataa.prices).each(function(dataa){

    var min = 0.1 
    var prices = dataa.prices[name][price]
    var reject = 'junk'

        if (prices.match(undefined)){
            prices = min
        }

           // console.log(prices)
 
        });
    }
});


            }
        });
    }
});

下面是两个JSON列表。第一个是库存,第二个是价格。它们现在不匹配,因为列表超过5000行

{
    "more": false,
    "more_start": false,
    "rgCurrency": [],
    "rgDescriptions": {
        "1326246365_1395751354": {
            "appid": "730",
            "background_color": "",
            "classid": "1326246365",
            "commodity": 1,
            "descriptions": [
                {
                    "color": "99ccff",
                    "type": "html",
                    "value": "Dieser Gegenstand verfügt über StatTrak™-Technologie, der bestimmte Statistiken festhält, wenn er von ihrem Besitzer ausgerüstet wird."
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "color": "CF6A32",
                    "type": "html",
                    "value": "StatTrak™ Auszeichnungen als „Beste Spieler“ im offiziellen Wettkampf: 1016"
                },
                {
                    "color": "ff4040",
                    "type": "html",
                    "value": "*Statistiken dieses Gegenstands werden bei Handel oder Verkauf auf dem Communitymarkt zurückgesetzt"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": "Dieses Musikkit tauscht die Musik im Spiel aus und kann mit jedem Ihrer Mitspieler geteilt werden. Es enthält außerdem eine „Bester Spieler“-Hymne, die für jeden Spieler abgespielt wird, wenn Sie der beste Spieler sind.\n\nDas Musikkit ersetzt die folgende Musik:\n- Hauptmenü\n- Rundenstart und -ende\n- Kartenziele\n- Zehn-Sekunden-Warnung\n- Verfolgerkamera"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": "Spielekomponist Lennie Moore serviert einen aromatischen, würzigen Mix aus Jazzy Funk. Wird am besten kalt serviert, wie die Leichen Ihrer Gegner, nachdem Sie mit ihnen fertig sind."
                },
                {
                    "type": "html",
                    "value": " "
                }
            ],
            "icon_drag_url": "",
            "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXO9B9WLbU5oA9OA0DVSeqk0sLcXE9xGlQG-OLwLgFj1qCbczsX6I_mwNXZlq_xa-_UwmoEvcYm0uqY99ih3wPhr0ByIzekKuBc2Os",
            "instanceid": "1395751354",
            "market_hash_name": "StatTrak™ Music Kit | Lennie Moore, Java Havana Funkaloo",
            "market_name": "Musikkit (StatTrak™) | Lennie Moore, Java Havana Funkaloo",
            "market_tradable_restriction": "7",
            "marketable": 1,
            "name": "Musikkit (StatTrak™) | Lennie Moore, Java Havana Funkaloo",
            "name_color": "CF6A32",
            "owner_descriptions": "",
            "tags": [
                {
                    "category": "Type",
                    "category_name": "Typ",
                    "internal_name": "CSGO_Type_MusicKit",
                    "name": "Musikkit"
                },
                {
                    "category": "Quality",
                    "category_name": "Kategorie",
                    "color": "CF6A32",
                    "internal_name": "strange",
                    "name": "StatTrak™"
                },
                {
                    "category": "Rarity",
                    "category_name": "Qualität",
                    "color": "4b69ff",
                    "internal_name": "Rarity_Rare",
                    "name": "Hohe Qualität"
                }
            ],
            "tradable": 1,
            "type": "Musikkit (StatTrak™, Hohe Qualität)"
        },
        "1465854320_2106391327": {
            "actions": [
                {
                    "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20S%owner_steamid%A%assetid%D11709586920196371037",
                    "name": "Im Spiel untersuchen …"
                }
            ],
            "appid": "730",
            "background_color": "",
            "classid": "1465854320",
            "commodity": 0,
            "descriptions": [
                {
                    "type": "html",
                    "value": "Verliehen für herausragende Dienste und Erfolge im Jahr 2016."
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "color": "99ccff",
                    "type": "html",
                    "value": "Ausgabedatum: 28. Dez. 2016 GMT"
                },
                {
                    "type": "html",
                    "value": " "
                },
                {
                    "type": "html",
                    "value": ""
                }
            ],
            "icon_drag_url": "",
            "icon_url": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXQ9Q1LO5kNoBhSQl-fVOG_wcbQVmJ5IABWuoX3e1Y27P_efWwM74rhl4HblKX2MLqClz1XuZwijLCVpd6t3FW3-RFkNTz1LYGccQc_MkaQpAaz3mGjMg",
            "icon_url_large": "-9a81dlWLwJ2UUGcVs_nsVtzdOEdtWwKGZZLQHTxDZ7I56KU0Zwwo4NUX4oFJZEHLbXQ9Q1LO5kNoBhSQl-fVOG_wcbQVmJ5IABWuoX3e1Y27P_efWx94N2kk4XFxfP1Mb6IwzMF6ZQpi7GVpomtjQLgqkY-ZjimItOSelQ5aFqG-Fm8wvCv28EGLgDagg",
            "instanceid": "2106391327",
            "market_actions": [
                {
                    "link": "steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20M%listingid%A%assetid%D11709586920196371037",
                    "name": "Im Spiel untersuchen …"
                }
            ],
            "market_hash_name": "2016 Service Medal",
            "market_name": "Verdienstmedaille 2016",
            "market_tradable_restriction": "7",
            "marketable": 0,
            "name": "Verdienstmedaille 2016",
            "name_color": "D2D2D2",
            "owner_descriptions": "",
            "tags": [
                {
                    "category": "Type",
                    "category_name": "Typ",
                    "internal_name": "CSGO_Type_Collectible",
                    "name": "Sammlerstück"
                },
                {
                    "category": "Quality",
                    "category_name": "Kategorie",
                    "internal_name": "normal",
                    "name": "Normal"
                },
                {
                    "category": "Rarity",
                    "category_name": "Qualität",
                    "color": "eb4b4b",
                    "internal_name": "Rarity_Ancient",
                    "name": "Außerordentlich"
                }
            ],
            "tradable": 0,
            "type": "Sammlerstück (Außerordentlich)"
        },

请把重点放在最小值上——几乎所有的属性都与问题无关,
$.ajax()
调用(以及为什么在
库存…json
循环的
for…中调用
prices.json
?)对不起,我会将其更改为aptry
var prices=dataa.prices[name]?数据a.价格[名称][价格]:分钟
同样,在您的示例中,
price
变量来自
dataa.prices[name][price]
语句的位置不清楚,因此它可能也是
未定义的
,请将此作为一个示例,重点放在最小值上-几乎所有属性都与问题无关,
$.ajax()
调用也不相关(为什么在
Inventory…json
for…循环中调用
prices.json
?)很抱歉,我将把它更改为aptry
var prices=dataa.prices[name]?dataa.prices[name][price]:min;
同样在您的示例中,
price
变量从何处到
dataa.prices[name][price]
语句,因此它也可能是
未定义的
{
  "status": "success",
  "prices": [
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'Blueberries' Buckshot | NSWC SEAL",
      "price": "1.44",
      "pricing_mode": "market",
      "skewness": "-0.01",
      "created_at": 1609156019,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": null
    },
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'The Doctor' Romanov | Sabre",
      "price": "3.69",
      "pricing_mode": "market",
      "skewness": "-0.08",
      "created_at": 1609107338,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": "1.48"
    },
    {
      "app_id": "730",
      "context_id": "2",
      "market_hash_name": "'Two Times' McCoy | TACP Cavalry",
      "price": "0.86",
      "pricing_mode": "market",
      "skewness": "0.11",
      "created_at": 1609166685,
      "icon_url": null,
      "name_color": null,
      "quality_color": null,
      "rarity_color": null,
      "instant_sale_price": null
    },