Kullanım Durumu
Kullanım örneği, bir nesne dizisini, karma eşlemede anahtar olarak ve bir nesnenin kendisi olarak değer olarak değerlendirmek ve kullanmak için sağlanan dizeye veya işleve dayalı bir karma haritaya dönüştürmektir. Bunu kullanmanın yaygın bir örneği, bir nesne dizisini karma nesne eşlemesine dönüştürmektir.
kod
Aşağıda, bir nesne dizisini bir nesnenin öznitelik değeriyle dizinlenmiş bir karma haritaya dönüştüren küçük bir snippet bulunmaktadır. Karma haritanın anahtarını dinamik olarak değerlendirmek için bir işlev sağlayabilirsiniz (çalışma süresi). Umarım bu gelecekte birine yardımcı olur.
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;
};
Özeti burada bulabilirsiniz: Nesneler Dizisini HashMap'e dönüştürür .