实现一个函数 omit(obj, keys),从对象中排除指定属性

推荐答案

本题详细解读

题目要求

实现一个函数 omit(obj, keys),从对象中排除指定属性。函数接收两个参数:

  • obj:原始对象。
  • keys:一个数组,包含需要排除的属性名。

函数应返回一个新的对象,该对象包含原始对象中除了指定属性之外的所有属性。

实现思路

  1. 遍历对象属性:使用 Object.keys(obj) 获取对象的所有属性名。
  2. 过滤属性:通过 reduce 方法遍历属性名数组,检查每个属性是否在 keys 数组中。
  3. 构建新对象:如果属性不在 keys 数组中,则将该属性及其值添加到新对象中。
  4. 返回新对象:最终返回构建好的新对象。

代码解析

  • Object.keys(obj):获取对象 obj 的所有属性名,返回一个数组。
  • reduce:遍历属性名数组,初始值为一个空对象 {}
  • !keys.includes(key):检查当前属性名 key 是否不在 keys 数组中。
  • acc[key] = obj[key]:如果属性名不在 keys 数组中,则将该属性及其值添加到新对象 acc 中。
  • return acc:返回构建好的新对象。

示例

在这个示例中,omit 函数排除了 obj 中的 ac 属性,返回了只包含 b 属性的新对象。

纠错
反馈