用例是對象的數組基於字符串或提供給評價函數和使用轉換成一個散列映射作爲散列表和值作爲對象本身的關鍵。使用它的常見情況是將對象數組轉換爲對象的哈希映射。
代碼
以下是在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 hasmap
* @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;
};
您可以在這裏找到要點:https://gist.github.com/naveen-ithappu/c7cd5026f6002131c1fa
你應該在問題本身包含任何相關的代碼。 – jmar777 2014-10-08 19:34:54
這裏有什麼問題? – 2017-06-18 00:01:59