【发布时间】:2021-10-08 17:35:41
【问题描述】:
我有以下 javascript 数组,我试图简单地返回 catId 以获得 id - 例如,如果我搜索 10000356 的 id 我想返回 4 的值.我该怎么做?
categoryIds = [
{
"id": 10000282,
"catId": 0
},
{
"id": 10000340,
"catId": 0
},
{
"id": 10000341,
"catId": 0
},
{
"id": 10000334,
"catId": 1
},
{
"id": 10000333,
"catId": 2
},
{
"id": 10000336,
"catId": 2
},
{
"id": 10000337,
"catId": 3
},
{
"id": 10000356,
"catId": 4
}
]
categoryIds.filter(id => id == 10000356);
预期结果:
4 - the catId for `10000356` is the integer 4.
【问题讨论】:
-
使用查找:
categoryIds.find(obj => obj.id == 10000356).catId -
@JeremyThille NO
categoryIds.find(obj => obj.id == 10000356)?.catId因为如果 find 没有找到任何东西,它会返回 null 并且在这里你的代码会中断,因为你不检查它,你可能会尝试返回 null.catId,这是一个错误 -
啊,我以为
?运算符只能在 Typescript 中使用,而不是在 JS 中。很高兴知道。是的,我知道,find的结果可以为 null,所以当然要检查 nullity 之类的东西。 -
是的,它在 js 中可用,这将防止错误的复制过去:P
标签: javascript arrays search filter javascript-objects