gpt4 book ai didi

JavaScript 将键/值列表与天匹配

转载 作者:行者123 更新时间:2023-12-02 23:43:19 25 4
gpt4 key购买 nike

我正在从名为 Jackrabbit 的类管理系统的 JSON 端点创建类列表。我从中提取的端点是 https://app.jackrabbitclass.com/jr3.0/Openings/OpeningsJSON?orgID=537284 (这包括我的示例类列表)。从上一个问题中,我得到了将其放入动态表中的帮助。但是,现在我也尝试显示类(class)的上课日期,但 JSON 端点将类(class)的上课日期格式化为如下所示: "meeting_days":{"mon":false,"tue":false, “星期三”:假,“星期四”:假,“星期五”:真,“周六”:假,“太阳”:假}。我正在尝试对其进行转换,如果它显示 "mon":true ,它将在表中显示为星期一(或星期一)。如果确实有多天,我想列出它们。

这是我当前拥有的 javascript/html:https://jsfiddle.net/pikles/uqca9df0/28/

function tConvert(time) {
// Check correct time format and split into components
time = time.toString().match(/^([01]\d|2[0-3])(:)([0-5]\d)(:[0-5]\d)?$/) || [time];

if (time.length > 1) { // If time format correct
time = time.slice(1); // Remove full string match value
time[5] = +time[0] < 12 ? 'AM' : 'PM'; // Set AM/PM
time[0] = +time[0] % 12 || 12; // Adjust hours
}
return time.join(''); // return adjusted time or original string
}

function dictionaryDay(dictDay) {
var days = ""
for (var day in dictDay) {
if (dictDay.hasOwnProperty(day) === true) {
days = days + day
} else {}
}
return days
}

$(document).ready(function() {
$.getJSON("https://app.jackrabbitclass.com/jr3.0/Openings/OpeningsJSON?orgID=537284", function(data) {
var data_arr = [];
$.each(data.rows, function(key, data_value) {
data_arr.push({
'class': data_value.name,
'coach': data_value.instructors[0],
'day': dictionaryDay(data_value.meeting_days),
'age': data_value.min_age.substr(2, 2) + ' +',
'openings': data_value.openings.calculated_openings,
'time': tConvert(data_value.start_time),
'tuition': data_value.tuition.fee,
});
});
$("#classes").dynatable({
dataset: {
records: data_arr
},
features: {
paginate: false,
recordCount: false,
search: false
}
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Dynatable/0.3.1/jquery.dynatable.min.js"></script>
<table id="classes" class="ui celled table">
<thead>
<th>Class</th>
<th>Coach</th>
<th>Day</th>
<th>Age</th>
<th>Openings</th>
<th>Time</th>
<th>Tuition</th>
</thead>
<tbody>
</tbody>
</table>

我目前正在努力解决的问题代码是 dictionaryDay 函数。

但是,这会在返回日期时列出每一天。我认为这可能是一个问题,其中 === true 应该是 === "true",但是当我这样做时 - 没有返回任何天。

有人能指出我正确的方向吗?

热烈的问候,
皮克莱特

最佳答案

您正在使用Object.hasOwnProperty,如果对象包含该属性,则返回 true。它不读取值,只读取键来检查它是否存在于对象中。

这是您更正后的函数:

function dictionaryDay (dictDay) {
var days = ''
for (var day in dictDay) {
// day is the key name ('mon'|'thu'|'wen'...)
// dictDay['mon'] make reference to the value (true|false)
if (dictDay[day]) {
days = days + ' ' + day
}
}
return days
}

关于JavaScript 将键/值列表与天匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com