luka tchubabrial
luka tchubabrial

Reputation: 33

Filter true meaning in javascript

If at least one of the values returned from the loop is true, the function must return true. How can I do this?

  const addCart = () => {
    for (let i = 0; i < props.cart.length; i++) {
      return props.cart[i].domainName === props.domainName;
    }
  };

Upvotes: 0

Views: 79

Answers (4)

srgbnd
srgbnd

Reputation: 5644

Try the following code.

const addCart = () => {
  for (let i = 0; i < props.cart.length; i++) {
    if (props.cart[i].domainName === props.domainName) {
      return true;
    }
  }
  return false;
};

The function returns true when the first equal property has been found. It gives you the possibility to obtain the result without checking all elements of the array.

Upvotes: 2

Jan&#243; G&#225;ll
Jan&#243; G&#225;ll

Reputation: 177

const addCart = () => props.cart.some(e=>e.domainName===props.domainName);

Upvotes: 1

David Thomas
David Thomas

Reputation: 253446

I'd suggest:

const addCart = () => {
  // here we use Array.prototype.some(),
  // which returns a Boolean; true if any
  // of the array-elements match the provided
  // assessment, or false if not:
  return props.cart.some(
    (cart) => cart.domainName === props.domainName
  );
}

References:

Upvotes: 1

DecPK
DecPK

Reputation: 25406

You can use some here

const addCart = () => {
  if (props.cart.some((o) => o.domainName === props.domainName)) return true;
  return false;
};

or simply using single liner solution

const addCart = () => props.cart.some((o) => o.domainName === props.domainName);

Upvotes: 1

Related Questions