这是我的 json 数据 -
{
"list": [
{
"deviceId": "2a-d539-4031-9bfc-4a42f2f765cf",
"versions": [
{
"id": "764c20-a213-9235f4b553b3",
"createdTime": 1590361208034,
"files": [
{
"fileType": "VLAN"
},
{
"fileType": "STARTUPCONFIG",
}
],
"startupRunningStatus": "OUT_OF_SYNC",
"createdBy": "SCHEDULED"
},
{
"id": "9bd33-a45a-ed2fefc46931",
"createdTime": 1589972337717,
"files": [
{
"fileType": "VLAN",
},
{
"fileType": "STARTUPCONFIG",
},
{
"fileType": "RUNNINGCONFIG",
}
],
"startupRunningStatus": "IN_SYNC",
"createdBy": "SCHEDULED_FIRST_TIME"
}
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想过滤数据,其中“fileType”:“RUNNINGCONFIG”和“fileType”:“STARTUPCONFIG”存在于“文件”中,仅返回该数组。
例如,从上面的 json 中只会返回第二个对象。
我尝试编写一些过滤器代码,但它无法正常工作,请指导我。
let versionsData = response.data.versions;
versionsData = versionsData.filter(
versions => {
versions.files.filter(
m => {
return m.fileType === "RUNNINGCONFIG"
}
)
}
);
return versionsData;
Run Code Online (Sandbox Code Playgroud)
您可以使用而不是嵌套过滤器 Array.prototype.some
const obj = {
"list": [
{
"deviceId": "2a-d539-4031-9bfc-4a42f2f765cf",
"versions": [
{
"id": "764c20-a213-9235f4b553b3",
"createdTime": 1590361208034,
"files": [
{
"fileType": "VLAN"
},
{
"fileType": "STARTUPCONFIG",
}
],
"startupRunningStatus": "OUT_OF_SYNC",
"createdBy": "SCHEDULED"
},
{
"id": "9bd33-a45a-ed2fefc46931",
"createdTime": 1589972337717,
"files": [
{
"fileType": "VLAN",
},
{
"fileType": "STARTUPCONFIG",
},
{
"fileType": "RUNNINGCONFIG",
}
],
"startupRunningStatus": "IN_SYNC",
"createdBy": "SCHEDULED_FIRST_TIME"
}
]
}
]
}
let versionsData = obj.list[0].versions;
versionsData = versionsData.filter(
versions =>
versions.files.some(
m => m.fileType === "RUNNINGCONFIG"
) && versions.files.some(
m => m.fileType== 'STARTUPCONFIG'
)
);
console.log(versionsData);Run Code Online (Sandbox Code Playgroud)
使用 Array.prototype.filter
const obj = {
"list": [
{
"deviceId": "2a-d539-4031-9bfc-4a42f2f765cf",
"versions": [
{
"id": "764c20-a213-9235f4b553b3",
"createdTime": 1590361208034,
"files": [
{
"fileType": "VLAN"
},
{
"fileType": "STARTUPCONFIG",
}
],
"startupRunningStatus": "OUT_OF_SYNC",
"createdBy": "SCHEDULED"
},
{
"id": "9bd33-a45a-ed2fefc46931",
"createdTime": 1589972337717,
"files": [
{
"fileType": "VLAN",
},
{
"fileType": "STARTUPCONFIG",
},
{
"fileType": "RUNNINGCONFIG",
}
],
"startupRunningStatus": "IN_SYNC",
"createdBy": "SCHEDULED_FIRST_TIME"
}
]
}
]
}
let versionsData = obj.list[0].versions;
versionsData = versionsData.filter( versions => { return versions.files.filter( m => {
return m.fileType === "RUNNINGCONFIG" || m.fileType === "STARTUPCONFIG" }).length > 1 }
);
console.log(versionsData);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84 次 |
| 最近记录: |