实现一个函数 pick(obj, keys),从对象中选取指定属性

推荐答案

本题详细解读

题目要求

实现一个函数 pick(obj, keys),从对象 obj 中选取指定属性 keys,并返回一个新的对象,该对象只包含 keys 中指定的属性。

代码解析

  1. 参数说明

    • obj:源对象,从中选取属性。
    • keys:一个数组,包含需要从 obj 中选取的属性名。
  2. 实现思路

    • 使用 reduce 方法遍历 keys 数组。
    • 对于每个 key,检查 obj 是否拥有该属性(使用 hasOwnProperty 方法)。
    • 如果 obj 拥有该属性,则将该属性及其值添加到累加器对象 acc 中。
    • 最后返回累加器对象 acc
  3. 代码细节

    • reduce 方法的初始值是一个空对象 {},用于存储最终的结果。
    • hasOwnProperty 方法用于确保只选取 obj 自身的属性,而不包括原型链上的属性。

示例

在这个示例中,pick 函数从 obj 中选取了 ac 两个属性,并返回了一个新的对象 { a: 1, c: 3 }

纠错
反馈