Gunakan Kasing
Use case adalah untuk mengubah array objek menjadi peta hash berdasarkan string atau fungsi yang disediakan untuk mengevaluasi dan menggunakan sebagai kunci dalam peta hash dan nilai sebagai objek itu sendiri. Kasus umum menggunakan ini adalah mengubah array objek menjadi peta objek hash.
Kode
Berikut ini adalah cuplikan kecil dalam JavaScript untuk mengonversi array objek ke peta hash, diindeks oleh nilai atribut objek. Anda dapat memberikan fungsi untuk mengevaluasi kunci dari peta hash secara dinamis (run time). Semoga ini bisa membantu seseorang di masa depan.
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;
};
Anda dapat menemukan intinya di sini: Konversi Array Objek ke HashMap .