ใช้ Case
กรณีการใช้งานคือการแปลงอาร์เรย์ของวัตถุให้เป็นแผนที่แฮชตามสตริงหรือฟังก์ชั่นที่มีให้เพื่อประเมินและใช้เป็นกุญแจสำคัญในแผนที่แฮชและค่าเป็นวัตถุเอง กรณีทั่วไปของการใช้สิ่งนี้กำลังแปลงอาเรย์ของวัตถุเป็นแผนที่แฮชของวัตถุ
รหัส
ต่อไปนี้เป็นข้อมูลโค้ดขนาดเล็กใน 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