Skip to content

Latest commit

 

History

History
22 lines (16 loc) · 708 Bytes

pickBy.md

File metadata and controls

22 lines (16 loc) · 708 Bytes
标题 标签
pickBy(从对象中选取符合回调函数的键值对) object(对象)

创建一个由给定函数返回 true 的属性组成的对象。

  • 使用 Object.keys() 和 Array.prototype.filter() 删除 fn 返回虚假值的键。
  • 使用 Array.prototype.reduce() 将过滤后的键转换回具有相应键值对的对象。
  • 使用两个参数调用回调函数:(value, key)。
const pickBy = (obj,fn) => Object.keys(obj).filter(key => fn(obj[key],key)).reduce((acc,key) => (key in obj && (acc[key] = obj[key]),acc),{});

调用方式:

pickBy({ a: 1, b: '2', c: 3 }, x => typeof x === 'number');
// { 'a': 1, 'c': 3 }

应用场景