我的data.js文件中有这个数组。我想使用javascript找到从其他html文件到data.js文件的具体日期。
例如:
以下是搜索日期
var searchDate = '12 -25-2017';
我想从 data.js 文件(变量名称: jpHolidays )中搜索该日期并显示在html或console.log()中。
我在谷歌搜索,我没有找到如何找到具体的日期。请帮帮我。
var jpHolidays = {
'01-01-2017' : '<span>お正月 <br> New Year\'s Day</span>',
'01-02-2017' : '<span>お正月 <br> New Year\'s Day observed</span>',
'01-09-2017' : '<span>成人の日 <br> Coming of Age Day</span>',
'02-11-2017' : '<span>建国記念日 <br> National Foundation Day</span>',
'03-20-2017' : '<span>春分の日 <br> Vernal Equinox Day</span>',
'04-29-2017' : '<span>昭和の日 <br> Shōwa Day</span>',
'05-03-2017' : '<span>憲法記念日 <br> Constitution Memorial Day</span>',
'05-04-2017' : '<span>みどりの日 <br> Greenery Day</span>',
'05-05-2017' : '<span>こどもの日 <br> Children\'s Day</span>',
'07-17-2017' : '<span>海の日 <br> Marine Day / Ocean Day</span>',
'08-11-2017' : '<span>山の日 <br> Mountain Day</span>',
'09-18-2017' : '<span>敬老の日 <br> Respect for the Aged Day</span>',
'09-23-2017' : '<span>秋分の日 <br> Autumnal Equinox Day</span>',
'10-09-2017' : '<span>体育の日 <br> Health and Sports Day </span>',
'11-03-2017' : '<span>文化の日 <br> Culture Day</span>',
'11-23-2017' : '<span>勤労感謝の日 <br> Labour Thanksgiving Day </span>',
'12-23-2017' : '<span>天皇誕生日 <br> The Emperor\'s Birthday</span>',
};
答案 0 :(得分:2)
这不是一个数组。这是一个JS对象。以下是迭代对象属性的方法
for (var day in jpHolidays) {
if (jpHoldays.hasOwnProperty(day) && day === searchDate) {
console.log(jpHolidays[day]);
}
}
它解释为 - for
迭代器将引导您完成jpHolidays
的所有属性。您尝试将每个属性与搜索字符串进行比较。 hasOwnProperty
只考虑对象的属性 - 而不是它原型继承的属性。
此外,您可以像jpHolidays
一样直接访问jpHolidays[searchDate]
。
这是一个JS数组a = [1, 2, 3];
这是一个对象a = {one: 1, two: 2, three: 3};
JS没有关联数组。
答案 1 :(得分:1)
A)将其声明为全局变量。
window.jpHolidays = {
'01-01-2017' : '<span>お正月 <br> New Year\'s Day</span>',
'01-02-2017' : '<span>お正月 <br> New Year\'s Day observed</span>',
...
};
B)在您将使用的文件之前加载data.js文件
因此,全局变量jpHolidays
可以存储在窗口中。如下所示:
<script src="data.js"></script>
<script src="yourFile.js"></script>
C)从window.jpHolidays
console.log(jpHolidays['01-01-2017']);
答案 2 :(得分:1)
首先,jpHolidays
是一个对象,而不是一个数组。
var jpHolidays = {
'01-01-2017' : '<span>お正月 <br> New Year\'s Day</span>',
'01-02-2017' : '<span>お正月 <br> New Year\'s Day observed</span>',
'01-09-2017' : '<span>成人の日 <br> Coming of Age Day</span>',
'02-11-2017' : '<span>建国記念日 <br> National Foundation Day</span>',
.....
....
}
//assume that this is the holiday you are looking for
var isHoliday = '12-25-2017';
// access the jpHolidaysObject. if found, return the value. If not, print 'not holiday' or whatever suits you.
console.log(jpHolidays[isHoliday] || 'not holiday');
答案 3 :(得分:1)
您可以使用hasOwnProperty方法检查密钥。
var searchDate = '12-25-2017';
if(jpHolidays.hasOwnProperty(searchDate)){
//write your logic here or return jpHolidays[searchDate];
}
答案 4 :(得分:0)
jpHolidays
不是数组而是对象。您可以通过提供密钥来访问该对象中的特定值:
var result = jpHolidays[searchDate]
如果您想检查对象中是否存在特定密钥,请使用&#39; in&#39;操作者:
if (searchDate in jpHolidays) { // ...
答案 5 :(得分:0)
您可以直接访问对象(而不是数组):
var jpHolidays = {
'01-01-2017' : '<span>お正月 <br> New Year\'s Day</span>',
'01-02-2017' : '<span>お正月 <br> New Year\'s Day observed</span>',
'01-09-2017' : '<span>成人の日 <br> Coming of Age Day</span>',
'02-11-2017' : '<span>建国記念日 <br> National Foundation Day</span>',
'03-20-2017' : '<span>春分の日 <br> Vernal Equinox Day</span>',
'04-29-2017' : '<span>昭和の日 <br> Shōwa Day</span>',
'05-03-2017' : '<span>憲法記念日 <br> Constitution Memorial Day</span>',
'05-04-2017' : '<span>みどりの日 <br> Greenery Day</span>',
'05-05-2017' : '<span>こどもの日 <br> Children\'s Day</span>',
'07-17-2017' : '<span>海の日 <br> Marine Day / Ocean Day</span>',
'08-11-2017' : '<span>山の日 <br> Mountain Day</span>',
'09-18-2017' : '<span>敬老の日 <br> Respect for the Aged Day</span>',
'09-23-2017' : '<span>秋分の日 <br> Autumnal Equinox Day</span>',
'10-09-2017' : '<span>体育の日 <br> Health and Sports Day </span>',
'11-03-2017' : '<span>文化の日 <br> Culture Day</span>',
'11-23-2017' : '<span>勤労感謝の日 <br> Labour Thanksgiving Day </span>',
'12-23-2017' : '<span>天皇誕生日 <br> The Emperor\'s Birthday</span>',
};
searchDate = '12-23-2017';
document.write(jpHolidays[searchDate]);