Przypadek użycia
Przypadek użycia polega na przekształceniu tablicy obiektów w mapę skrótu na podstawie ciągu znaków lub funkcji przewidzianej do oceny i użycia jako klucza w mapie skrótu i wartości jako samego obiektu. Częstym przypadkiem korzystania z tego jest konwertowanie tablicy obiektów na mapę obiektów mieszających.
Kod
Poniżej znajduje się niewielki fragment kodu JavaScript służący do konwersji tablicy obiektów na mapę skrótu, indeksowaną wartością atrybutu obiektu. Możesz zapewnić funkcję do dynamicznej oceny klucza mapy skrótu (czas działania). Mam nadzieję, że to pomoże komuś w przyszłości.
function isFunction(func) {
return Object.prototype.toString.call(func) === '[object Function]';
}
/**
* This function converts an array to hash map
* @param {String | function} key describes the key to be evaluated in each object to use as key for hashmap
* @returns Object
* @Example
* [{id:123, name:'naveen'}, {id:345, name:"kumar"}].toHashMap("id")
* Returns :- Object {123: Object, 345: Object}
*
* [{id:123, name:'naveen'}, {id:345, name:"kumar"}].toHashMap(function(obj){return obj.id+1})
* Returns :- Object {124: Object, 346: Object}
*/
Array.prototype.toHashMap = function(key) {
var _hashMap = {}, getKey = isFunction(key)?key: function(_obj){return _obj[key];};
this.forEach(function (obj){
_hashMap[getKey(obj)] = obj;
});
return _hashMap;
};
Można znaleźć sedno tutaj: Konwertuje tablicę obiektów na HashMap .