# mapObject

# Description

通过 iteratee 处理对象的每个属性来创建一个值数组。 iteratee 有三个参数:(value, key, object)。

# Params

(object, iteratee)

# Return

Array

# Code

function mapObject(object, iteratee) {
  const props = Object.keys(object)
  const result = new Array(props.length)

  props.forEach((key, index) => {
    result[index] = iteratee(object[key], key, object)
  })
  return result
}

# Analyze

通过 Object.keys 拿到可遍历的属性数组,然后 通过 forEachresult 对应的 索引 赋值,值是由 iteratee 函数返回的结果

# Example

const obj = {
  a: 1,
  b: 2,
  c: 3,
  d: 4
}

console.log(mapObject(obj, (v) => ++v)) // [ 2, 3, 4, 5 ]