📜  Lodash 或 Underscore——pick、pickBy、omit、omitBy(1)

📅  最后修改于: 2023-12-03 15:02:47.468000             🧑  作者: Mango

Lodash 或 Underscore——pick、pickBy、omit、omitBy

在处理对象时,可能会需要对对象进行筛选、过滤操作。Lodash 和 Underscore 是两个功能强大的 JavaScript 库,它们提供了一些方便的工具函数来协助开发人员完成这样的操作。

本文将介绍 Lodash 和 Underscore 中的 pick、pickBy、omit、omitBy 四个函数,它们可以用于从对象中选取或排除指定的属性或键值对。

pick

_.pick(object, [paths]) 函数可以从给定的对象中选取指定的属性。

const object = { 'a': 1, 'b': '2', 'c': 3 };
const result = _.pick(object, ['a', 'c']);

console.log(result); // { 'a': 1, 'c': 3 }

在上面的示例中,我们从 object 对象中选取了 ac 两个属性,生成了新的对象并存储在 result 变量中。

pickBy

_.pickBy(object, [predicate=_.identity]) 函数可以从给定的对象中选取符合条件的属性。

const object = { 'a': 1, 'b': '2', 'c': 3, 'd': '4' };
const result = _.pickBy(object, (value, key) => key === 'a' || _.isNumber(value));

console.log(result); // { 'a': 1, 'c': 3 }

在上面的示例中,我们使用了一个函数作为 predicate 参数,该函数接受一个值和键名作为输入,返回一个布尔值。只有当键名为 a 或者值是一个数字时,对应的属性才会被选取。

omit

_.omit(object, [paths]) 函数可以从给定的对象中排除指定的属性。

const object = { 'a': 1, 'b': '2', 'c': 3 };
const result = _.omit(object, ['b']);

console.log(result); // { 'a': 1, 'c': 3 }

在上面的示例中,我们排除了 b 属性,生成了新的对象并存储在 result 变量中。

omitBy

_.omitBy(object, [predicate=_.identity]) 函数可以从给定的对象中排除符合条件的属性。

const object = { 'a': 1, 'b': '2', 'c': 3, 'd': '4' };
const result = _.omitBy(object, (value, key) => key === 'b' || _.isNumber(value));

console.log(result); // { 'b': '2', 'd': '4' }

在上面的示例中,我们使用了一个函数作为 predicate 参数,该函数接受一个值和键名作为输入,返回一个布尔值。只有当键名为 b 或者值是一个数字时,对应的属性才会被排除。

总的来说,在对对象进行属性过滤、选取操作时,我们可以使用这四个函数完成。在实际开发中,它们可以帮助我们轻松、高效地处理复杂的对象,并提高代码的可读性和可维护性。