사용 사례
유스 케이스는 해시 맵의 키로 사용하고 오브젝트 자체로 값을 평가하고 사용하기 위해 제공된 문자열 또는 함수를 기반으로 오브젝트 배열을 해시 맵으로 변환하는 것입니다. 이것을 사용하는 일반적인 경우는 객체 배열을 객체의 해시 맵으로 변환하는 것입니다.
암호
다음은 객체 배열을 객체의 속성 값으로 색인화 한 해시 맵으로 변환하는 JavaScript의 작은 스 니펫입니다. 해시 맵의 키를 동적으로 평가하는 기능을 제공 할 수 있습니다 (런타임). 이것이 미래의 누군가를 돕기를 바랍니다.
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;
};
여기서 요점을 찾을 수 있습니다 . 객체 배열을 HashMap으로 변환 합니다.