📅  最后修改于: 2023-12-03 15:02:47.468000             🧑  作者: Mango
在处理对象时,可能会需要对对象进行筛选、过滤操作。Lodash 和 Underscore 是两个功能强大的 JavaScript 库,它们提供了一些方便的工具函数来协助开发人员完成这样的操作。
本文将介绍 Lodash 和 Underscore 中的 pick、pickBy、omit、omitBy 四个函数,它们可以用于从对象中选取或排除指定的属性或键值对。
_.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
对象中选取了 a
和 c
两个属性,生成了新的对象并存储在 result
变量中。
_.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(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(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
或者值是一个数字时,对应的属性才会被排除。
总的来说,在对对象进行属性过滤、选取操作时,我们可以使用这四个函数完成。在实际开发中,它们可以帮助我们轻松、高效地处理复杂的对象,并提高代码的可读性和可维护性。