簡體   English   中英

Map 兩個 arrays typescript

[英]Map two arrays in typescript

我有兩個 arrays 第一個數組

{
    "heart_rate": 27,
    "height": 82,
    "weight":78
}

第二個數組

[
    {
    "id": "heart_rate",
    "description": "le ratio coeur",
    "label":"ratio coeur"
    },
    {
        "id": "height",
        "label": "taille",
        "description": "la taille"
    },
    {
        "id": "weight",
        "label": "poids",
        "description": "le poids"
    }
]

我可以使用map function 來匹配第一個數組的鍵和第二個數組的 ID 以獲得這樣的結果數組嗎

[
{
 "label": "poids",
 "value": 82,
 "description": "le poids"
},
{
 "label": "taille",
 "value": 78,
 "description": "la taille"
},
{
 "label": "ratio coeur",
 "value": 27,
 "description": "le ratio coeur"
},
]

MGX是正確的。 您的第一項不是數組,而是 object。

這是你必須做的,讓它與 object 一起工作。

const valueObject = {
    "heart_rate": 27,
    "height": 82,
    "weight":78
};

const array = [
    {
        "id": "heart_rate",
        "description": "le ratio coeur",
        "label":"ratio coeur"
    },
    {
        "id": "height",
        "label": "taille",
        "description": "la taille"
    },
    {
        "id": "weight",
        "label": "poids",
        "description": "le poids"
    }
]

const keys = Object.keys(valueObject);
const values = Object.values(valueObject);

const result = array.map((item) => { 
  return {
    label: item.label,
    value: values[keys.findIndex(key => key === item.id)],
    description: item.description,
  };
});

或者,您可以將valueObject轉換為Map以更輕松地獲得結果:

const map = new Map(Object.entries(valueObject));

const result = array.map((item) => { 
  return {
    label: item.label,
    value: map.get(item.id),
    description: item.description,
  };
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM