javascript - JS 为各种相似文件返回单一文件类型(例如'mp4' || 'm4v' = 'MOV')
问题描述
我有一个 populateTable 函数,我正在尝试将从 JSON 文件中读取的几种不同文件类型组合成一种显示类型。在这种情况下 mp4 和 m4v 进入 MOV - 我没有收到任何错误,但表中的所有内容都未定义。
function populateTable() {
function setGenericType(type) {
if(type == 'mp4' || type == 'm4v') {
return 'MOV'
}
}
for (const d of data) {
$("#contents").append(`<tr>
<td>${d.title}</td>
<td>${d.year}</td>
<td>${setGenericType(d)}</td>
</tr>`)
}
}
有任何想法吗?来自 data.js 的 JSON 示例:
{
"title":"Arc Transition",
"year":2016,
"type":"mp4"
}
解决方案
您将整个数据对象传递给您的setGenericType
函数,但将参数与字符串进行比较,因此它们永远不会匹配。如果没有匹配的类型,函数返回undefined
.
因此,要么将函数的参数视为传递给它的对象
function setGenericType(d) {
if(d.type == 'mp4' || d.type == 'm4v') {
return 'MOV'
}
}
或者只是将对象的类型传递给您的函数并保持函数原样
for (const d of data) {
$("#contents").append(`<tr>
<td>${d.title}</td>
<td>${d.year}</td>
<td>${setGenericType(d.type)}</td>
</tr>`)
}
推荐阅读
- google-sheets - Google Sheets GROUPBY 将值组合到一个单元格中以满足分组列的查询
- php - 如何正确绘制日期为 x 轴的散点图?
- jenkins - 如果我没有更改,为什么 Jenkins 用户的电子邮件会再次注册
- python - 连接 4 对角线获胜检查器只能以一种方式工作
- r - 如何编写带有特殊字符的 xml 代码(使用 R xml 包)
- c# - 如何将 DateTime 添加到现有数据库?
- kubernetes - Logrotate 不删除旋转的日志
- salesforce - 用于将潜在客户推送到 Salesforce 的 LeadPoint URL
- linux - .NET 5.0 应用程序未从 docker run 获取环境变量
- google-cloud-platform - 如何修复 Google Translate API.V3“不可用”错误?