nobody
nobody

Reputation: 65

filter list of array from an array

so here what am trying to do

const days = ['monday, april 26, 2021 11:00 pm','tuesday, april 27, 2021 13:00 am','tuesday, april 27, 2021 12:00 am', 'friday, april 27, 2021 12:00 am', 'saturday, april 27, 2021 12:00 am']
    const found = ['monday', 'tuesday']
    const removeFalseDay = days.filter(day => !day.includes("monday"));

      console.log(removeFalseDay);
      console.log(found);
      console.log(days);

so it works fine with a single object but when I pass in an array of words It dosent filter anyone knows why is that 🙏🏻

const days = ['monday, april 26, 2021 11:00 pm','tuesday, april 27, 2021 13:00 am','tuesday, april 27, 2021 12:00 am', 'friday, april 27, 2021 12:00 am', 'saturday, april 27, 2021 12:00 am']
    const found = ['monday', 'tuesday']
    const removeFalseDay = days.filter(day => !day.includes(found));

      console.log(removeFalseDay);
      console.log(found);
      console.log(days);

Upvotes: 0

Views: 53

Answers (3)

nobody
nobody

Reputation: 65

so I got it to work like this

 const days = ['monday, april 26, 2021 11:00 pm','tuesday, april 27, 2021 13:00 am','tuesday, april 27, 2021 12:00 am', 'friday, april 27, 2021 12:00 am', 'saturday, april 27, 2021 12:00 am']
const found = ['monday', 'tuesday', 'friday']
const removeFalseDay = days.filter(days =>!found.some(f => days.includes(f)));

console.log(removeFalseDay);
console.log(found);
console.log(days);

Thanks to @DownloadPizza

Upvotes: 0

Vladislav Tupikin
Vladislav Tupikin

Reputation: 124

const days = ['monday, april 26, 2021 11:00 pm','tuesday, april 27, 2021 13:00 am','tuesday, april 27, 2021 12:00 am', 'friday, april 27, 2021 12:00 am', 'saturday, april 27, 2021 12:00 am']
const found = /monday|tuesday/
const removeFalseDay = days.filter(day => !found.test(day));

console.log(removeFalseDay);
console.log(found);
console.log(days);

Upvotes: 1

DownloadPizza
DownloadPizza

Reputation: 3456

How about

days.filter(day =>!found.some(f => day.contains(f))

The some function returns true when the predicate matches for any element

Upvotes: 3

Related Questions