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

105
Views
filtering with multiple conditions in javascript

I am trying to filter data based on input and it works fine but I want add an extra condition to it. It should return if titel or another value (for example sendFrom) is given.

 const newData = masterDataSource.filter(function (item) {

    const itemData = item.titel  ? item.titel.toUpperCase() : ''.toUpperCase();
    const textData = text.toUpperCase();
    return itemData.indexOf(textData) > -1;
  });

I tried adding some operators but it didn´t worked out as planed

     const newData = masterDataSource.filter(function (item) {

    const itemData = item.titel || item.sendFrom ? item.titel.toUpperCase() || item.sendFrom.toUpperCase() : ''.toUpperCase();
    const textData = text.toUpperCase();
    return itemData.indexOf(textData) > -1;
  });

thanks

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

0

If I understand what you're after you would want something like:

const itemData = item.titel ? item.titel.toUpperCase() : (item.sendFrom ? item.sendFrom.toUpperCase() : ''.toUpperCase());

Parentheses are not required, but I added them to make it easier to get the logic.

Also, ''.toUpperCase() doesn't make much sense, it's the same as ''.

You could replace the initial condition with

const itemData = (item.titel  && item.titel.toUpperCase()) || '';

and the revised version:

const itemData = (item.titel  && item.titel.toUpperCase()) || (item.sendFrom  && item.sendFrom.toUpperCase()) || '';

Again, parentheses are not required.

References:
Conditional (ternary) operator
Logical Operators

about 4 years ago · Juan Pablo Isaza Report

0

You could collect the wanted properties in an array and iterate them while checking the values.

const newData = masterDataSource.filter(({ titel = '', sendFrom = '' }) => 
    [titel, sendFrom].some(s => s.toUpperCase().includes(text.toUpperCase()))
);
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!