user1692342
user1692342

Reputation: 5237

Better programming style for if condition in JS

Is there a better way to write this if condition in a for loop.

for(var i in selectedId) {
  for(var key in myJSON) {
    if((key === "correct" && selectedId[i].type === "fp") || key !== "correct") {
       //do something
    }
  }
}

Basically all I need to call a function if the key doesnt have the value correct or if it is correct then the type has to be "fp" . Is there a better way to write this if condition and make it more readable?

Upvotes: 1

Views: 70

Answers (3)

Shahzaib Haroon
Shahzaib Haroon

Reputation: 1

<div class="row full-row green-bg">
  <div class="testimonial show">
    <h3 class="testimonial-p1">Testimonial 1</h3>
    <p class="testimonial-p2">"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Molestiae cumque, earum pariatur fugiat aut quod,
      excepturi aliquam sapiente dolor illum iste? Rerum iure beatae sapiente eveniet recusandae porro expedita voluptas?"
    </p>
    <p class="testimonial-p3">Robert Purnomo</p>
  </div>

  <div class="testimonial">
    <h3 class="testimonial-p1">Testimonial 2</h3>
    <p class="testimonial-p2">"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Molestiae cumque, earum pariatur fugiat aut quod,
      excepturi aliquam sapiente dolor illum iste? Rerum iure beatae sapiente eveniet recusandae porro expedita voluptas?"
    </p>
    <p class="testimonial-p3">Robert Purnomo</p>
  </div>

  <div class="testimonial">
    <h3 class="testimonial-p1">Testimonial 3</h3>
    <p class="testimonial-p2">"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Molestiae cumque, earum pariatur fugiat aut quod,
      excepturi aliquam sapiente dolor illum iste? Rerum iure beatae sapiente eveniet recusandae porro expedita voluptas?"
    </p>
    <p class="testimonial-p3">Robert Purnomo</p>
  </div>

  <div class="testimonial">
    <h3 class="testimonial-p1">Testimonial 4</h3>
    <p class="testimonial-p2">"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Molestiae cumque, earum pariatur fugiat aut quod,
      excepturi aliquam sapiente dolor illum iste? Rerum iure beatae sapiente eveniet recusandae porro expedita voluptas?"
    </p>
    <p class="testimonial-p3">Robert Purnomo</p>
  </div>

  <div class="testimonial ">
    <h3 class="testimonial-p1">Testimonial 5</h3>
    <p class="testimonial-p2">"Lorem, ipsum dolor sit amet consectetur adipisicing elit. Molestiae cumque, earum pariatur fugiat aut quod,
      excepturi aliquaFm sapiente dolor illum iste? Rerum iure beatae sapiente eveniet recusandae porro expedita voluptas?"
    </p>
    <p class="testimonial-p3">Robert Purnomo</p>
  </div>



  <!-- <div class="circles-wrapper">
    <ul>
      <li data-title="tree" data-price="$300" class="active" ></li>
      <li ></li>
      <li ></li>
      <li ></li>
      <li ></li>
    </ul>
  </div>
  -->

  <div class="circles-wrapper">
    <ul>
      <li data-position="1" class="active"></li>
      <li data-position="2"></li>
      <li ></li>
      <li ></li>
      <li ></li>
    </ul>
  </div>


</div>

Upvotes: -2

James
James

Reputation: 22246

You could get rid of the inner loop:

for(var i in selectedId) {
  if (Object.keys(myJSON).indexOf("correct") == -1 || selectedId[i].type == 'fp') {
    //do something
  }
}

Upvotes: 2

Racil Hilan
Racil Hilan

Reputation: 25361

You condition:

if((key === "correct" && selectedId[i].type === "fp") || key !== "correct")

returns true when:

  • key is "correct" and type is "fp"
  • key is not "correct"

You can simplify it like this:

if(key !== "correct" || selectedId[i].type === "fp")

which returns true when:

  • key is not "correct"
  • key is "correct" and type is "fp"

As you can see they're equivalent (only conditions order swapped).

Upvotes: 2

Related Questions