Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

125
Views
_.filter function does not work with _.partialRight constructed function

The _.filter function does not work with _.partialRight constructed function, but works with a custom function. See below example:

import _ from 'lodash';

const students = [
  {firstName: "Mary"},
  {firstName: "Jane"},
  {firstName: "John"},
];

function firstNameStartsWith(student, letter) {
  return _.startsWith(student.firstName, letter);
}

_.filter(students, _.partialRight(firstNameStartsWith, "J"));
// []

_.filter(students, student => firstNameStartsWith(student, "J"));
// [ { firstName: 'Jane' }, { firstName: 'John' } ]

Can someone explain why?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

The _.filter() function passes 3 parameters to the predicate - value, index, and the original array. The index overrides the partially applied value, and you get the wrong result. This happens because "partially applied arguments are appended to the arguments it receives". You can fix this by limiting the partially applied function to a single parameter using _.unary():

const students = [
  {firstName: "Mary"},
  {firstName: "Jane"},
  {firstName: "John"},
];

function firstNameStartsWith(student, letter) {
  return _.startsWith(student.firstName, letter);
}

const result = _.filter(students, _.unary(_.partialRight(firstNameStartsWith, "J")));

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!