Funkcja porównująca w tablicy inną wartość i zwracająca co innego

0

Mam tablicę:

users = [{
    name: "Elma Head",
    email: "[email protected]",
    eyeColor: "green",
    friends: ["Goldie Gentry", "Aisha Tran"],
    isActive: true,
    balance: 2278,
    gender: "female",
    age: 21
  }],

i chciałbym żeby funkcja getActiveUsers zwracała tablicę z użytkownikami ("name"), którzy mają "isActive:true" - trzeba użyć metody filter()
napisałem coś takiego, ale nie wiem dlaczego nie chce działać:

const getActiveUsers = (users) => {
  return users.filter(user => user.isActive === "true"); 
};
3

Mam alergie na JS ale nie działa pewnie dlatego, że isActive jest booleanem w twoim zbiorze danych a porównujesz w filtrze ze stringiem "true" - to by pewnie działało jakbyś użył standardowego zepsutego operatora porównania == zamiast normalnie działającego operatora porównania ===
W tej chwili masz różne typy po obu stronach warunku logicznego.

2

true, nie "true"

const users = [{
    name: "Elma Head",
    email: "[email protected]",
    eyeColor: "green",
    friends: ["Goldie Gentry", "Aisha Tran"],
    isActive: true,
    balance: 2278,
    gender: "female",
    age: 21
  }]
  
const getActiveUsers = (users) => {
  return users.filter(user => user.isActive === true)
};
console.log(getActiveUsers(users))
3

w ogóle nie musisz porównywać tylko sprawdzić czy jest truthy. Nie są też potrzebne nawiasy, klamerki ani return:

const getActiveUsers = users => users.filter(user => user.isActive);

w sumie cała ta funkcja nie jest potrzebna - samo users.filter(user => user.isActive) wydaje się wystarczająco czytelne

1 użytkowników online, w tym zalogowanych: 0, gości: 1