30秒学会 JavaScript 片段 · 2018年9月1日

30秒学会 JavaScript 片段 – omit

Omits the key-value pairs corresponding to the given keys from an object.

Use Object.keys(obj), Array.prototype.filter() and Array.prototype.includes() to remove the provided keys.
Use Array.prototype.reduce() to convert the filtered keys back to an object with the corresponding key-value pairs.

代码片段

const omit = (obj, arr) =>
  Object.keys(obj)
    .filter(k => !arr.includes(k))
    .reduce((acc, key) => ((acc[key] = obj[key]), acc), {});

使用样例

omit({ a: 1, b: '2', c: 3 }, ['b']); // { 'a': 1, 'c': 3 }