[英]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.