如何筛选与URL参数相同的id



我有一个模拟数据库,看起来像这个

[
{
"id": 1,
"jobTitle": "Budget/Accounting Analyst III",
"companyName": "Topiclounge",
"city": "Duluth",
"state": "Minnesota",
"country": "United States",
"jobDescription": "egestas metus aenean fermentum donec ut mauris eget massa tempor convallis nulla neque libero convallis eget eleifend luctus ultricies eu nibh quisque id justo sit amet sapien dignissim vestibulum vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae nulla dapibus dolor vel est donec odio justo sollicitudin ut suscipit a feugiat et eros",
"datePosted": "1/23/2020"
}, 
...
]

等等

我想从我从useParams((获得的urlParams中检索id与id匹配的对象;我正在使用此axios.get请求

const getJobById = async () => {
try {
const response = await Axios.get(`https://api.jsonbin.io/b/5ff798661d107958ae4ca82b`)
console.log(response.data, id)
const job = response.data.filter(item => item.id === id)[0]
console.log(job)
} catch (error) {
console.log(error)
}
}

为了从mock api中检索数据并筛选出与该id匹配的对象,我从console.log(job(中得到了一个未定义的对象如何以正确的方式筛选这些数据?

您可以使用response.data.find(item => item.id === id),但这可能无法解决您的问题。

为了能够进一步帮助你,你能分享这行打印到控制台上的内容吗:

console.log(response.data,id(

根据OP在下面注释中的响应,问题是===也在检查相同的类型。由于变量id是String,并且api输出的对象中的id键的值是Numberitem.id === id,因此将始终返回false。在这种情况下,您可以只使用==,也可以将字符串id转换为数字:id = Number(id)

或者只是OP实际做了什么来解决它:

item.id === parseInt(id)

最新更新