问题描述
我是api新手。我有两个数组,分别是A和B,A和B都包含json响应,
数组A具有以下数据。
var foundVectors = relayhash.Intersect(BuildList.Select(x => x.posv3));
依此类推,数组B具有
{
"servers": [
{
"links": [
{
"href":,"rel": "self"
},{
"href": ","rel": "bookmark"
}
],"rel": "bookmark"
}
]
},"OS-EXte": "active","OS-TR:instance_name": "instance-000","OS-SRV-Uched_at": "20200","flavor": {
"id": "fe183ca7-610f-4db4-934","links": [
{
"href":
"rel": "bookmark"
}
]
},
我需要从数组A中获取与数组B中匹配的所有风味ID。
解决方法
let servers = [{
flavor: {
id: "1",links: [{
rel: "bookmark"
}]
}
},{
flavor: {
id: "2",links: [{
rel: "any"
}]
}
}]
let flavors = [{
name: "ti",ram: 8192,id: "1"
},{
name: "ti",id: "2"
},id: "3"
}]
let serverFlavors = servers.map(s => s.flavor.id)
let newArray = flavors.filter(f => serverFlavors.includes(f.id))
console.log(newArray)
如果您的数据是json,则可以parse the json,然后执行上述操作。
类似于JSON解析
JSON.parse(<strigifiedJSON>)
,
我认为您可以先将数组A
中的所有风味ID映射到新数组。
然后从映射的B
数组中过滤文件Array Flavor
。
假设服务器是阵列A-
let serverFlavor = servers.map(row => { row.flavor.id});
let filteredRam = flavors.filter(row => serverFlavor.find((a) => a == row.id));
然后,您可以在filteredRam
数组上使用reduce函数。