Cas d'utilisation
Le cas d'utilisation consiste à convertir un tableau d'objets en une carte de hachage basée sur une chaîne ou une fonction fournie pour évaluer et utiliser comme clé dans la carte de hachage et la valeur en tant qu'objet lui-même. Un cas courant d'utilisation est la conversion d'un tableau d'objets en une carte de hachage d'objets.
Code
Voici un petit extrait en JavaScript pour convertir un tableau d'objets en une carte de hachage, indexé par la valeur d'attribut de l'objet. Vous pouvez fournir une fonction pour évaluer dynamiquement la clé de la carte de hachage (au moment de l'exécution). J'espère que cela aidera quelqu'un à l'avenir.
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;
};
Vous pouvez trouver l'essentiel ici: Convertit le tableau d'objets en HashMap .