首页  编辑  

数组对象转Map

Tags: /Node & JS/   Date Created:
Typescript中,如何把一个数组对象转为Map数据?其中对象有唯一ID,例如:
如下数据:
demo {
  "hid": 123456
  "name": "aaa",
  "...": "..."
}
如何把 list : Array<demo> 转为以 hid 为 key, demo 本身为 value 的 Map 对象?
const list: Array<demo> = new Array<demo>();
// ... list 填充操作
const map = list.reduce((map, item) => {
    map.set(item.hid, item);
}, new Map<Number, Object>());
当然,你也可以弄个泛型方法:
function arrayToMap<T, K extends keyof T>(array: Array<T>, property: K) {
    let map = new Map<T[K], T>()
    for (const item of array) {
        map.set(item[property], item)
    }
    return map
}