Reputation: 227
I'm displaying data from an array of objects but I want to filter the results so that I display only the name
s of those objects that have a winner
property with a value of 1
.
<script>
$(document).ready(function () {
var json = [
{"name":"Name 1","winner":"1"},
{"name":"Name 2","winner":"0"},
{"name":"Name 3","winner":"1"},
{"name":"Name 4","winner":"1"},
{"name":"Name 5","winner":"0"},
];
var li;
for (var i = 0; i < json.length; i++) {
li = $('<li/>');
li.append(json[i].name);
$('#feed').append(li);
}
});
</script>
HTML should be like this (showing only results when winner is true, winner
=1
)
<ul id="feed" >
<li>Name 1</li>
<li>Name 3</li>
<li>Name 4</li>
</ul>
Upvotes: 2
Views: 87
Reputation: 933
Try this:
var ul = $('ul#feed');
for (var i = 0; i < json.length; i++) {
if (json[i].winner == 1) {
ul.append("<li>" + json[i].name + "</li>");
}
}
Upvotes: 3
Reputation: 33228
You have to add an if statement to check if winner is equal to 1:
var json = [
{"name":"Name 1","winner":"1"},
{"name":"Name 2","winner":"0"},
{"name":"Name 3","winner":"1"},
{"name":"Name 4","winner":"1"},
{"name":"Name 5","winner":"0"},
];
var li;
for (var i = 0; i < json.length; i++) {
if(json[i].winner == "1"){ //add this
li = $('<li/>');
li.append("<font size='+1'>" + json[i].name + "</font>");
$('#feed').append(li);
}
}
Upvotes: 3
Reputation: 1039498
You may try using an if
statement:
for (var i = 0; i < json.length; i++) {
if (json[i].winner === '1') {
li = $('<li/>');
li.append("<font size='+1'>" + json[i].name + "</font>");
$('#feed').append(li);
}
}
Upvotes: 4