How to use the intersectionWith function from lodash

Find comprehensive JavaScript lodash.intersectionWith code examples handpicked from public code repositorys.

The lodash.intersectionWith method returns an array of values that are included in all given arrays, using a custom comparator function to compare values.

168
169
170
171
172
173
174
175
176
177
module.exports.indexOf             = _.indexOf;
module.exports.initial             = _.initial;
module.exports.interpose           = _.interpose;
module.exports.intersection        = _.intersection;
module.exports.intersectionBy      = _.intersectionBy;
module.exports.intersectionWith    = _.intersectionWith;
module.exports.invert              = _.invert;
module.exports.invertBy            = _.invertBy;
module.exports.invoke              = _.invoke;
module.exports.invokeMap           = _.invokeMap;
fork icon19
star icon122
watch icon0

+ 92 other calls in file

20
21
22
23
24
25
26
27
28
29
if (propFiles.length > 0) {
  _.map(propFiles, (fileName) => {
    // Extract the name of the course
    const name = fileName.split('/').pop().split('_')[0];
    const courseType =
      _.intersectionWith(fileName.split('/').pop().split('_'), ['json'], _.isEqual).length > 0
        ? fileName.split('/').pop().split('_')[1]
        : null;
    // Extract the language
    const lang = fileName.split('/').pop().split('_').pop().split('.')[0];
fork icon18
star icon15
watch icon4

+ 2 other calls in file

How does lodash.intersectionWith work?

The lodash.intersectionWith method is a utility function in the Lodash library that takes two or more arrays as input and returns an array of values that are included in all of the input arrays. The comparison between values is done using a custom comparator function that is provided as the last argument to the method. This function takes two values as input and should return true if they are considered equal, or false otherwise. The comparator function can be used to compare values in any way that is necessary. For example, it could be used to compare objects based on a specific property or to compare strings using a case-insensitive comparison. If no comparator function is provided, the method will use a strict equality comparison (i.e. ===) to compare values. The lodash.intersectionWith method creates a new array that includes only the values that are present in all of the input arrays. If a value appears more than once in any of the input arrays, it will only appear once in the output array. If no values are common to all of the input arrays, the method will return an empty array. The lodash.intersectionWith method does not modify the input arrays; it only returns a new array containing the common values.

72
73
74
75
76
77
78
79
80
81
82
83
84
console.log(intersection); // => [2]


const intersectionBy = _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);
console.log(intersectionBy); // => [2.1]


const intersectionWith = _.intersectionWith([2.1, 1.2], [2.3, 3.4], (a, b) => Math.floor(a) === Math.floor(b));
console.log(intersectionWith); // => [2.1]


const join = _.join(['a', 'b', 'c'], '~');
console.log(join); // => 'a~b~c'
fork icon0
star icon4
watch icon0

+ 15 other calls in file

381
382
383
384
385
386
387
388
389
390
  originalLeafNodes,
  modifiedNodes,
  (a, b) => a.path === b.path && !nullified(a, b) && !emptied(a, b)
);

const updatedLeafNodes = _.intersectionWith(
  modifiedLeafNodes,
  originalLeafNodes,
  (a, b) =>
    a.path === b.path &&
fork icon0
star icon0
watch icon0

+ 8 other calls in file

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const _ = require("lodash");

// Define an array of objects
const arr1 = [
  { id: 1, name: "Alice" },
  { id: 2, name: "Bob" },
  { id: 3, name: "Charlie" },
];

// Define another array of objects with a different structure
const arr2 = [
  { personId: 1, personName: "Alice Smith" },
  { personId: 3, personName: "Charlie Brown" },
];

// Define a custom comparator function that compares objects by their "id" and "personId" properties
const compareFn = (obj1, obj2) => obj1.id === obj2.personId;

// Find the common objects between the two arrays using the custom comparator function
const result = _.intersectionWith(arr1, arr2, compareFn);

console.log(result);
// Output: [ { id: 1, name: 'Alice' }, { id: 3, name: 'Charlie' } ]

In this example, we have two arrays of objects with different property names. We want to find the objects that have the same id in the first array and the same personId in the second array. We use lodash.intersectionWith to find the common objects between the two arrays, passing the two arrays and a custom comparator function as arguments. The comparator function compares objects by their id and personId properties, returning true if they are equal and false otherwise. The resulting array contains the objects that are common to both input arrays based on the custom comparison function. In this case, the output contains the objects with id values of 1 and 3, which have corresponding personId values in the second array.

58
59
60
61
62
63
64
65
66
67
68
// Найти массив общих одинаковых элементов
const commonFruits = _.intersectionBy(fruits1, fruits2, 'type');
console.log(commonFruits);


// Найти массив схожих по типу фруктов
const similarFruits = _.intersectionWith(fruits1, fruits2, (fruit1, fruit2) => {
  return fruit1.type === fruit2.type;
});
console.log(similarFruits);

fork icon0
star icon0
watch icon0

231
232
233
234
235
236
237
238
239
240
241
242
//intersectionBy2---> [ { x: 1 } ]


//_.intersectionWith([arrays],[comparator])
let intersectionWith1 = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];
let intersectionWith2 = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];
let intersectionWith3 = _.intersectionWith(intersectionWith1, intersectionWith2, _.isEqual);
console.log('intersectionWith3--->', intersectionWith3);
//intersectionWith3---> [ { x: 1, y: 2 } ]


//_.join(array,[separator=','])
fork icon0
star icon0
watch icon0

Other functions in lodash

Sorted by popularity

function icon

lodash.get is the most popular function in lodash (7670 examples)