Version: 0.1.00.2.00.3.00.4.00.5.00.6.00.6.10.7.00.8.00.9.00.10.00.11.00.12.00.13.00.14.00.15.00.16.00.17.00.19.00.20.00.21.00.22.00.23.00.24.00.25.00.26.00.27.00.27.10.28.00.29.00.29.10.29.20.29.30.30.01.0.01.0.11.0.21.1.01.1.11.1.21.1.31.1.41.1.51.1.61.1.71.1.81.2.01.2.21.2.31.2.41.3.01.3.11.3.21.4.01.4.11.4.21.4.31.4.41.4.51.5.01.5.12.0.02.1.02.1.12.1.22.1.32.2.02.3.02.3.12.4.02.5.02.5.1
module.exports = function keyBy (list, propertyOrCb) {
const isCallback = typeof propertyOrCb === 'function'
return list.reduce((memo, item) => {
const key = isCallback ? propertyOrCb(item) : item[propertyOrCb]
memo[key] = item
return memo
}, {})
}