Reputation: 5237
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
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
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
Reputation: 25361
You condition:
if((key === "correct" && selectedId[i].type === "fp") || key !== "correct")
returns true
when:
You can simplify it like this:
if(key !== "correct" || selectedId[i].type === "fp")
which returns true
when:
As you can see they're equivalent (only conditions order swapped).
Upvotes: 2