如何将数组值作为角度中的键值对

问题描述

我是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函数。