| 'use strict'; |
| var $ = require('../internals/export'); |
| var iterate = require('../internals/iterate'); |
| var aFunction = require('../internals/a-function'); |
| |
| // `Map.keyBy` method |
| // https://github.com/tc39/proposal-collection-methods |
| $({ target: 'Map', stat: true }, { |
| keyBy: function keyBy(iterable, keyDerivative) { |
| var newMap = new this(); |
| aFunction(keyDerivative); |
| var setter = aFunction(newMap.set); |
| iterate(iterable, function (element) { |
| setter.call(newMap, keyDerivative(element), element); |
| }); |
| return newMap; |
| } |
| }); |