Getting Object.prototype.hasOwnProperty() key
Getting Object.prototype.hasOwnProperty() key
我正在开发一个简单的网站,该网站使用 json 来获取数据。
代码如下所示:
指数:
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Linköping</title>
<link type="text/css" rel="stylesheet" media="all" href="css/main.css" />
<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="js/textmetrics.js"></script>
<script type="text/javascript">
var config = {
// General config
slideTime: 15*1000,
fadeTime: 3*1000,
// Time
timeUpdate: 60*1000,
// Names
nameDayUrl: 'namedays.json',
nameUpdate : 60*1000,
// Events
eventUrl: 'Idrottsevent.json',
eventUpdate : 1*1000,
// Weather
weatherUrl: 'http://api.openweathermap.org/data/2.5/find?lat=58.41&lon=15.62&cnt=1&units=metric&appid=2de143494c0b295cca9337e1e96b00e0',
weatherUpdate: 1800*1000
}
</script>
<div class="slide304" id="eventSlide">
<div class="center">
<div id="gameTicker1"></div>
</div>
</div>
<div class="slide304" id="eventSlide">
<div class="center">
<div id="gameTicker2"></div>
</div>
</div>
<div class="slide304">
<div class="center">
<div id="weatherTicker"></div>
</div>
</div>
<script type="text/javascript">
// Global data
var _names = {};
var _events = {};
var _games = {};
$(document).ready(function() {
// Get events
$.ajax({
url: config.eventUrl,
async: true,
cache: false,
method: 'GET',
success: function(result) {
_games = result;
setGame1();
setGame2();
},
error: function(xhr, status, error) {
_games = {};
}
});
function setGame1() {
// Select game.
var nowDate = getTimeForEvents();
var mm = addZero(nowDate.getMonth() + 1);
var d = addZero(nowDate.getDate());
var key = mm + "-" + d + "A";
var game = (typeof _games[key] != "undefined") ? _games[key] : "";
$('#gameTicker1').html((game == '') ? '' : game);
setFontSizeForCurrentSlide();
setTimeout(setGame1, config.eventUpdate);
}
function setGame2() {
// Select game.
var nowDate = getTimeForEvents();
var mm = addZero(nowDate.getMonth() + 1);
var d = addZero(nowDate.getDate());
var key = mm + "-" + d + "B";
var game = (typeof _games[key] != "undefined") ? _games[key] : "";
$('#gameTicker2').html((game == '') ? '' : game);
setFontSizeForCurrentSlide();
setTimeout(setGame2, config.eventUpdate);
}
该代码检查当天每个游戏的日期和月份以及附加的字母。如果一天有两场比赛,那么游戏一有"A",游戏二有"B",依此类推。
现在,网站在JavaScript(SetGame1,SetGame2)中滑动浏览每个游戏。它在显示第一个游戏后显示一个深色幻灯片,因为 json 上只有一个游戏。我希望它做的是检查并确保它只滑动可用的游戏,并跳过 json 上不可用的游戏。如果该 json 上只有一个游戏,则不应尝试显示 GameSet2。
完整的 Json:
{
"12-27": [
"Dagens match:<br />KFUM Linköping-Falcao FC Stockholm<br />13:00 Linköpings Sporthall"
],
"12-28": [
"Dagens match:<br />LHC-Rögle BK<br />19:00 SAAB ARENA"
],
"12-30": [
"Dagens match:<br />LHC-Örebro Hockey<br />19:00 SAAB ARENA" ],
"01-02": [
"Dagens match:<br />Linköping Innebandy-Malmö FBC<br />14:10 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-Växjö IBK<br />17:10 SAAB ARENA"
],
"01-08": [
"Dagens match:<br />KFUM Linköping- Spartak Örebro Futsal Club<br />20:00 Linköpings Sporthall"
],
"01-10": [
"Dagens match:<br />Linköping Innebandy-Pixbo Wallenstam IBK<br />13:00 Folkungahallen",
"Dagens match:<br />Linköping Innebandy- FC Helsingborg<br />17:00 Linköpings Sporthall"
],
"01-13": [
"Dagens match:<br />Linköping Innebandy-IK Sirius IBK<br />19:00 Linköpings Sporthall"
],
"01-14": [
"Dagens match:<br />LHC-Färjestads BK<br />19:00 SAAB ARENA"
],
"01-16": [
"Dagens match:<br />Linköpings VC-Örkeljunga<br />15:00 Linköpings Sporthall"
],
"01-17": [
"Dagens match:<br />Linköping Innebandy-IBF Falun<br />13:00 Folkungahallen",
"Dagens match:<br />RP IF-GF Kroppskultur<br />13:30 Linköpings Sporthall",
"Dagens match:<br />RP IF Linköping-HK Silwing/Troja<br />16:00 Linköpings sporthall"
],
"01-23": [
"Dagens match:<br />Linköping VC-KFUM Eskilstuna volley<br />15:00 Folkungahallen",
"Dagens match:<br />LHC-Frölunda HC<br />16:00 SAAB ARENA"
],
"01-24": [
"Dagens match:<br />Linköpings VC-Hylte Halmstad<br />15:00 Linköpings sporthall"
],
"01-25A": "Dagens match:<br />TEST Linköpings VC-Hylte Halmstad<br />15:00 Linköpings sporthall",
"01-27": [
"Dagens match:<br />Linköpings VC-Södertelge<br />19:00 Linköpings sporthall"
],
"01-29": [
"Dagens match:<br />Linköping Innebandy-Endre IF<br />19:30 Folkungahallen",
"Dagens match:<br />Linköping HC-MODO Hockey<br />19:00 Stångebro Ishall"
],
"01-30": [
"Dagens match:<br />LHC-HV71<br />18:30:SAAB ARENA",
"Dagens match:<br />Linköping VC-Sollentuna<br />13:00 Folkungahallen",
"Dagens match:<br />Linköping HC-Brynäs IF<br />16:00 Stångebro Ishall",
"Dagens match:<br />Linköping Innebandy-Warberg IC<br />15:00 Linköpings Sporthall"
],
"01-31": [
"Dagens match:<br />Linköping HC-IF Sundsvall Hockey<br />12:00 Stångebro Ishall",
"Dagens match:<br />RP IF Linköping-Tyresö Handboll<br />13:30 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-Brännans HF<br />16:00 Linköpings sporthall"
],
"02-04": [
"Dagens match:<br />LHC-MODO Hockey<br />19:00 SAAB ARENA"
],
"02-13": [
"Dagens match:<br />RP IF Linköping-Lidingö SK<br />13:30 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-HK GP<br />16:00 Linköpings sporthall",
"Dagens match:<br />Linköping Innebandy-IBK Dalen<br />14:30 Motala Sporthall"
],
"02-16": [
"Dagens match:<br />LHC-Skellefteå AIK<br />19:00 SAAB ARENA"
],
"02-19": [
"Dagens match:<br />Linköping Innebandy-Pixbo Wallenstam IBK<br />19:00 Linköpings Sporthall"
],
"02-20": [
"Dagens match:<br />LHC-Växjö Lakers<br />16:00 SAAB ARENA",
"Dagens match:<br />Linköpings VC-Västerås VBK<br />15:00 Folkungahallen",
"Dagens match:<br />Linköping HC-SDE HF<br />12:00 Stångebro Ishall"
],
"02-21": [
"Dagens match:<br />Linköping HC-Leksands IF<br />13:00 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-Rönnby Västerås IBK<br />13:00 Folkungahallen"
],
"02-24": [
"Dagens match:<br />Linköpings VC-Sollentuna<br />19:00 Linköpings sporthall",
"Dagens match:<br />LHC-Rögle BK<br />19:00 SAAB ARENA"
],
"02-26": [
"Dagens match:<br />Linköping Innebandy-Huddinge IK<br />19:30 Folkungahallen"
],
"02-27": [
"Dagens match:<br />Linköpings VC-Tierp<br />15:00 Linköpings sporthall",
"Dagens match:<br />RP IF Linköping-Skara HF<br />13:30 Linköpings sporthall",
"Dagens match:<br />LHC-Brynäs IF<br />18:30 SAAB ARENA",
"Dagens match:<br />RP IF Linköping-Mantorps IF HF<br />16:00 Linköpings sporthall"
],
"03-01": [
"Dagens match:<br />LHC-Örebro Hockey<br />19:00 SAAB ARENA"
],
"03-05": [
"Dagens match:<br />Linköpings VC-Jomala IK<br />15:00 Folkungahallen",
"Dagens match:<br />LHC-HV71<br />16:00 SAAB ARENA",
"Dagens match:<br />Linköping Innebandy-IBK Dalen<br />17:15 Linköpings Sporthall"
],
"03-08": [
"Dagens match:<br />LHC-Malmö Redhawks<br />19:00 SAAB ARENA"
],
"03-09": [
"Dagens match:<br />Linköpings VC-Vingåker<br />19:00 Linköpings sporthall"
],
"03-19": [
"Dagens match:<br />Linköpings VC-Rissne IF<br />15:00 Folkungahallen",
"Dagens match:<br />RP IF Linköping-Skånela IF<br />17:00 Linköpings sporthall"
],
"03-20": [
"Dagens match:<br />RP IF Linköping-Enköpings HF<br />15:00 Linköpings sporthall"
]
}
据我了解,这可以通过使用Object.prototype.hasOwnProperty()
_games = result;
if(_games.hasOwnProperty("game1")) // assuming game1 is the key for game1, replace it with the actual key.
setGame1();
if(_games.hasOwnProperty("game2"))
setGame2();
问题是我不知道每个游戏的密钥。怎么知道每个系列游戏有什么键?
可以使用Object.keys(obj)
检索对象键
您可以使用
Object.keys()
var obj = {
key1: 'val1',
key2: 'val2',
key3: 'val3'
}
Object.keys(obj)
-> ["key1", "key2", "key3"]
或者您也可以执行以下操作:
function getKeys(obj) {
var keys = []
for (var k in obj) {
if (!obj.hasOwnProperty(k))
continue
keys.push(k)
}
return keys
}
var keys = getKeys({'key1': "val1", 'key2': "val2"});
console.log(keys);
相关文章:
- KeyPress和Keydown在这个特定的代码上不起作用.只有key-up起作用
- hasOwnProperty-即使有属性,也不会显示属性
- 如何获取文本框组的值,并使用jquery将它们放入(key:Value)数组中
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- Object.prototype.hasOwnProperty.call() vs Object.prototype.h
- 使用lodash从对象数组中获取uniq[key,value]
- 在Node.js中,我在哪里可以看到JavaScript方法的源代码,例如hasOwnProperty
- 显示多个具有相同源javascript(map(key,value))数据的图表
- 在key up函数上将文本框值传递给javascript
- JavaScript使event.key警报event.keyCode的基本polyfill实现Chrome的现代化
- 为什么使用 Object.prototype.hasOwnProperty.call(myObj, prop) 而不是
- hasOwnProperty 在对照父对象属性进行检查时返回 true
- 在 Forerunner 数据库集合中创建主键时,key 属性是否可以位于集合对象的对象内部
- 如何限制 .key down JavaScript 事件
- 由于重定向URI无效,Key斗篷令牌请求被拒绝
- 纯Javascript:相当于jQuery$.data('key',value)
- jsonobj.key名称没有返回其对应键的完整值
- Getting Object.prototype.hasOwnProperty() key
- obj.hasOwnProperty(key)vs使用obj[key]直接引用
- Object.hasOwnProperty.call(object, key) in php