0

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;
    }
  };

4 Answers4

2

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.

srgbnd
  • 5,404
  • 9
  • 44
  • 80
1

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);
DecPK
  • 24,537
  • 6
  • 26
  • 42
1

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:

David Thomas
  • 249,100
  • 51
  • 377
  • 410
1
const addCart = () => props.cart.some(e=>e.domainName===props.domainName);
Janó Gáll
  • 167
  • 5