How to use the sortedUniqBy function from lodash

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

lodash.sortedUniqBy is a function that removes duplicates from a sorted array of objects, keeping only the first occurrence of each unique object based on a specified key.

354
355
356
357
358
359
360
361
362
363
module.exports.sortedIndexOf       = _.sortedIndexOf;
module.exports.sortedLastIndex     = _.sortedLastIndex;
module.exports.sortedLastIndexBy   = _.sortedLastIndexBy;
module.exports.sortedLastIndexOf   = _.sortedLastIndexOf;
module.exports.sortedUniq          = _.sortedUniq;
module.exports.sortedUniqBy        = _.sortedUniqBy;
module.exports.splat               = _.splat;
module.exports.split               = _.split;
module.exports.splitAt             = _.splitAt;
module.exports.splitWith           = _.splitWith;
fork icon19
star icon122
watch icon0

+ 92 other calls in file

373
374
375
376
377
378
379
380
381
const mappedStudytracks = studytracks.map(studytrack => ({ ...studytrack, type: 30 }))

// Sort to avoid deadlocks
await bulkCreate(
  ElementDetail,
  sortedUniqBy(sortBy([...mappedProgrammes, ...mappedStudytracks], ['code']), e => e.code),
  null,
  ['code']
)
fork icon3
star icon12
watch icon0

How does lodash.sortedUniqBy work?

lodash.sortedUniqBy is a function provided by the Lodash library that takes in an array of objects and a function that specifies the property to compare, and returns a new array with only the first occurrence of each object whose property value is unique in the array. First, the function sorts the array using the sort() method, which orders the elements of the array based on the specified property value. It then iterates over each element of the sorted array and compares its property value to the previous element. If the property value is different, the function adds the element to the new array. This results in an array that is sorted and has no duplicate elements based on the specified property value. The sortedUniqBy() function is useful in cases where you want to remove duplicates from a sorted array of objects based on a particular property value, without having to write custom code to handle the duplicates. It's worth noting that sortedUniqBy() assumes that the input array is already sorted based on the specified property. If the array is not sorted, the function may not return the expected result, and it may be necessary to sort the array first using the sortBy() method provided by Lodash.

132
133
134
135
136
137
138
139
140
141
142
143
144
console.log(sortedLastIndexOf); // => 3


const sortedUniq = _.sortedUniq([1, 1, 2]);
console.log(sortedUniq); // => [1, 2]


const sortedUniqBy = _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
console.log(sortedUniqBy); // => [1.1, 2.3]


const tail = _.tail([1, 2, 3]);
console.log(tail); // => [2, 3]
fork icon0
star icon4
watch icon0

+ 15 other calls in file

581
582
583
584
585
586
587
588
589
590
)
.map(([startTokenIndex, lastTokenIndex]) => range(startTokenIndex, lastTokenIndex + 1)
  .map((globalTokenIndex) => flatTokenData[globalTokenIndex])
)
.map((spanTokenData) => {
  const tokenizationUUIDs = sortedUniqBy(
    spanTokenData.map(({sentence}) => sentence.tokenization.uuid),
    "uuidString"
  );
  const tokenizationId = listToScalar(tokenizationUUIDs, "list of tokenizations referenced by span");
fork icon2
star icon3
watch icon0

Ai Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const _ = require("lodash");

// Define an array of objects with duplicate values
const users = [
  { id: 1, name: "John" },
  { id: 2, name: "Jane" },
  { id: 3, name: "John" },
  { id: 4, name: "Joe" },
  { id: 5, name: "Jane" },
];

// Use sortedUniqBy to remove duplicates based on the "name" property
const uniqueUsers = _.sortedUniqBy(_.sortBy(users, "name"), "name");

// Log the resulting array to the console
console.log(uniqueUsers);

In this example, we first define an array of objects that contains some duplicate values based on the "name" property. We then use the sortedUniqBy() function to remove the duplicates, first sorting the array by the "name" property using the sortBy() method, and then passing in the "name" property to the sortedUniqBy() function as the key to compare. The resulting array, uniqueUsers, contains only the first occurrence of each unique object based on the "name" property, and is sorted alphabetically by name. We log this array to the console to verify that the duplicates have been removed.

5
6
7
8
9
10
11
12
13
14
15
16
 */


// lodash
console.log(
  "lod.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor)",
  lod.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor)
);


// es6
function sortedUniqBy(arr, fn) {
fork icon0
star icon0
watch icon0

362
363
364
365
366
367
368
369
370
371
372
373
let sortedUniq1 = _.sortedUniq([1, 1, 2]);
console.log('sortedUniq1--->', sortedUniq1);
//sortedUniq1---> [ 1, 2 ]


//_.sortedUniqBy(array,[iteratee])
let sortedUniqBy1 = _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);
console.log('sortedUniqBy1--->', sortedUniqBy1);
//sortedUniqBy1---> [ 1.1, 2.3 ]


//_.tail(array)
fork icon0
star icon0
watch icon0

25
26
27
28
29
30
31
32
33
34
35
36
console.log(
  _.reverse(users)
);


console.log(
  _.sortedUniqBy(users, value => value.age)
);


console.log(
  _.filter(users, value => value.age < 40)
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)