javascript - 过滤 JSON - Angular 8
问题描述
{"data": [
{
"client": {
"name": "TEST NAME",
"client_id": "id_client_boU6cpFX55vkLCXt52TSVB"
},
"Pay_list": [
{
"pay_id": "id_pay_aAW6mEvsCpBVT4aASDERTY"
},
{
"pay_id": "id_pay_aAW6mEvsCpBVT4aTDgVCSD"
}
],
"company": {
"name": "ABCD",
"ID": "1234"
}
},
{
"client": {
"name": "TEST NAME",
"client_id": "id_client_boU6cpFX55vkLCXt52TSVB"
},
"Pay_list": [
{
"pay_id": "id_pay_aAW6mEvsCpBVT4aASQQQW"
},
{
"pay_id": "id_pay_aAW6mEvsCpBVT4aTDDFGE"
},
{
"pay_id": "id_pay_aAW6mEvsCpBVT4aTDgVDFE"
}
],
"company": {
"name": "fBfD",
"ID": "5214"
}
},
]
}
我需要过滤这个 JSON 并获取公司名称。
this.Detail = result.data.filter(item => item.client.client_id== this.client_client_id && item.Pay_list.pay_id == this.PayId);
我已经尝试了上面的代码,但它引发了错误,因为 Pay_list 是一个数组。
如何过滤上述 JSON?请帮助我。
解决方案
你可以试试这个片段。附上Stackblitz Demo供您参考:
过滤器可能需要的变量:
const clientId = "id_client_boU6cpFX55vkLCXt52TSVB";
const payId = "id_pay_aAW6mEvsCpBVT4aASDERTY";
代码
const result = response
.data
.filter(({ client: { client_id }, Pay_list }) => client_id === clientId && Pay_list.some(pay => pay.pay_id === payId))[0]
.company
.name;
结果:
ABCD
推荐阅读
- r - dplyr 中的 filter() 如何评估自定义函数中 () 中的内容?
- r - 如何从 R 项目中删除脚本
- python - 使用 Numpy 的余弦相似度函数
- mysql - 替换phpmyadmin中以开头和结尾的字符串
- node.js - StaticInjectorError(AppModule)[AppComponent -> DataService]
- php - 多个应用程序,同一域下的多个应用程序版本。如何配置 apache 服务器、路由和相对路径以使其工作?
- r - 改变sclass图中符号的颜色
- node.js - VS Code 没有为在 Docker 容器中运行的 Node 应用程序打断点
- kubernetes - Prometheus Adapter 清空自定义指标项
- javascript - 如何使用 replace() 方法更改 Javascript 中字符串的所有字符?