_.intersectionBy
栏目:
Javascript
发布时间:2024-12-27
_.intersectionBy
是 Lodash 库中的一个函数,用于比较两个或多个数组,并返回一个新数组,这个新数组包含了所有数组中共同存在的元素,但判断元素是否相同的依据是一个指定的迭代函数(iteratee)的结果,而不是元素本身的严格相等。
函数签名
_.intersectionBy(arrays, [iteratee=_.identity])
arrays
(Array[]): 要检查的数组列表。[iteratee=_.identity]
(Function): 每次迭代调用的函数。
使用示例
假设我们有两个数组,每个数组包含了一些对象的数组,我们希望找到这些对象中某个属性值相同的元素。
const array1 = [
{ 'x': 1 },
{ 'x': 2 }
];
const array2 = [
{ 'x': 2 },
{ 'x': 3 }
];
const result = _.intersectionBy(array1, array2, 'x');
// 或者使用函数作为 iteratee: _.intersectionBy(array1, array2, obj => obj.x);
console.log(result);
// => [{ 'x': 2 }]
在这个例子中,我们使用 _.intersectionBy
函数,并指定 iteratee
为对象属性 'x'
的键名(或者一个返回对象 'x'
属性的函数)。结果数组包含了在两个原始数组中 'x'
属性值都为 2
的对象。
注意事项
- 如果不提供
iteratee
,则默认使用_.identity
,这意味着数组元素将基于其严格相等性(===
)进行比较。 _.intersectionBy
与_.intersection
的区别在于_.intersection
直接比较元素本身,而_.intersectionBy
则通过迭代函数的结果来判断元素是否相同。_.intersectionBy
至少需要两个数组作为输入。
本文地址:https://www.tides.cn/p_js-lodash-intersectionBy