javascript - VueJS中对象的过滤值
问题描述
我需要检查startAt的值是否存在于对象中。如果它在其中,它应该返回该对象的id。
目的:
[{
"id": "1234567",
"createTimestamp": "2020",
"name": {
"action": "",
"allDay": false,
"category": "Misc",
"startAt": "05",
"title": "foo"
},
"updateTimestamp": "2020"
}]
以下是我到目前为止所拥有的。过滤有效,但我无法访问id来返回它。
<div v-for="(hour, i) in 24" :key="i">
{{ filterByHour(hour) }}
</div>
filterByHour(id) {
if (id < 10) {
id = 0 + id
}
const result = this.events.filter(item => item.name.startAt === id.toString())
return result
}
如何返回对象的id?
解决方案
我认为问题出在
id = 0 + id
. 当 id 为 5 时,此行5
仅计算为 not05
。更改为id = '0' + id
,它将转换为字符串。在 之后
filter
,使用map
来提取 id。
const events = [
{
id: "1234567",
createTimestamp: "2020",
name: {
action: "",
allDay: false,
category: "Misc",
startAt: "05",
title: "foo"
},
updateTimestamp: "2020"
}
];
function filterByHour(id) {
if (id < 10) {
id = "0" + id;
}
const result = events
.filter(item => item.name.startAt === String(id))
.map(x => x.id);
return result;
}
console.log(filterByHour(5));
console.log(filterByHour(11));
console.log(filterByHour());
推荐阅读
- xcode - 重置开发中应用的位置权限
- node.js - 如何使用 nodejs 检测 DVD 驱动器名称?
- java - Java,与对象无关的空返回
- php - 如何在 woocommerce wordpress 中为不同类别应用不同的排序选项
- ruby - 将几个 Enumerable 合二为一
- c++ - C++常见的std::make_unique、std::packaged_task和std::promise问题
- java - 比较两个 ArrayList 并根据条件打印合并后的 ArrayList 的数据
- python - 使用 Python 从 PDF 文件中挖掘文本
- php - 在php中显示多个键和数组列的结果
- javascript - 如何在nodeJS中的forEach中正确使用异步