javascript - 从 javascript 对象中的命名键获取值
问题描述
我试图通过在 javascript 对象中提供文字键来获取特定值。在下图中,您可以看到“过滤器”等于“已批准”。这来自下图中的 reimb_status_description。
代码的第 6 行是我将过滤器分配给值的地方。
const filter = Object.values(jsonData[i]["reimb_status_description"]).join("");
我不明白的是,如果我没有以 结尾.join("")
,过滤器将读作“A,p,p,r,o,v,e,d”,这显然是一个字母数组。有人可以帮我理解为什么结果是一个数组而不是一个字符串吗?另外,有没有更好的方法来提取我正在寻找的数据?
function PopulateReimbursementTable(jsonData, appliedFilter)
{
ClearReimbursementTable();
for(var i = 0; i < jsonData.length; i++)
{
const tr = document.createElement("tr");
const entries = Object.entries(jsonData[i])
const filter = Object.values(jsonData[i]["reimb_status_description"]).join("");
console.log("filter: " + filter)
for(const [key, property] of entries)
{
if(fields.includes(key)){
console.log(key + "\t" + property);
const td = document.createElement("td");
if(key == "reimb_date_submitted" || key == "reimb_date_resolved"){
if(property == null)
{
td.innerHTML = "tbd";
}else{
var d = new Date(property);
let formatted_date = appendLeadingZeroes((d.getMonth() + 1)) + "-" + appendLeadingZeroes(d.getDate()) + "-" + d.getFullYear();
//console.log(formatted_date)
td.innerHTML = formatted_date;
}
} else if(key == 'reimb_amount'){
if(property === null || property === undefined)
{
td.innerHTML = "tbd";
}else{
td.innerHTML = formatter.format(property);
}
}
else
{
if(property === null || property === undefined)
{
td.innerHTML = "tbd";
}else{
td.innerHTML = property;
}
}
if(fields.includes(key))
{
tr.appendChild(td);
}
}
}
if(appliedFilter == "All"){
reimbTableBody.appendChild(tr);
}
else if(filter == appliedFilter){
reimbTableBody.appendChild(tr);
}
}
}
解决方案
这就是1Object.values
的作用。因此,在您的情况下,我认为您可以使用它来检索字符串值。String
jsonData[i].reimb_status_description
1为什么?因为字符串实际上是一个包含字符类型元素的一维数组。
console.log(Object.values("some string"));
// this would deliver the string though
console.log(Object.values({someString: "some string"})[0]);
.as-console-wrapper { top: 0; max-height: 100% !important; }
推荐阅读
- swift - 如何在 graphQL 中编写 JOIN 或从多种类型中获取结果 - AWS App sync iOS
- java - jgit - 基于文件扩展名的 git diff
- javascript - 从父视图调用时,模态弹出窗口未在部分视图中加载
- java - 为什么 %I% 没有显示我的 JavaDoc 版本
- php - Laravel/PHP - 查询大数据和错误 500 的问题
- c# - 将输出和错误重定向到自定义 PSHostUserInterface
- asp.net-mvc - 如何在 ondblClickRow 事件中触发 beforeSubmitCell 事件
- php - PHP gettext 在 Homestead 中返回输入作为结果
- react-native - 不变违规:元素类型无效:期望字符串或类/函数,但得到:未定义。
- java - PriorityQueue 抛出类强制转换异常