In this post, we will discuss about finding and excluding element from JQuery Array. We all worked in a JQuery. Sometimes, we work in JQuery Arrays too. Right? Consider we have an array, and in that array we need to exclude a particular element and create a new array without excluded element. What we will do? We will use a for
loop and just loop through the array, apply some conditions and if a criteria matches, we will do some operation right? Here I am going to share with you another way that we can achieve this by using a function called grep
in JQuery. Normally grep
function acts as each
in JQuery.
Background
I am working on a client side application where there are lots of client side arrays and variables. We handle our entire client side processes by using JQuery. I usually go through the operation of finding and removing array elements using JQuery. I thought it would be better if I share some knowledge about that here. I hope someone will find it useful.
Using the Code
To start with, you need to include jquery reference.
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
Now, we need an array right? Consider the following is our array.
var myArray = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']
Next, we will formulate this array to an HTML table, so that the visualization will be perfect. To do this, we will have a function, which will just convert the array element to an HTML table. Following is our function body.
function buildTable(array,message){
var html='<table><caption>'+message+'</caption><tr>';
for(var i=0;i<array.length;i++)
{
html+='<td>'+array[i]+'</td>';
}
html+='</tr></table>';
$("#body").html(html);
}
As you can see, the parameters for this function are, an array and a caption message.
Now, we need to call this function right?
var myArray = ['Monday','Tuesday',
'Wednesday','Thursday','Friday','Saturday','Sunday']
var message="My Array Elements Before Removing";
buildTable(myArray,message);
Style out HTML table by giving the preceding styles.
<style>
tr{
border:1px solid #ccc;
}
td{
border:1px solid #ccc;
padding: 10px;
}
#body{
margin: 30px;
}
#click{
margin: 30px;
cursor:pointer;
}
</style>
So, our output will be as follows:
Now, we need to fire a click
event in which we will find out which element is to be excluded from the array, and finally assign new element set to our existing array.
<a hrefe="#" id="click">Click To Remove</a>
$("#click").click(function(){
var message="My Array Elements After Removing";
var excludedElement = ['Thursday'];
myArray = jQuery.grep(myArray, function(value) {
return value != excludedElement;
});
buildTable(myArray,message);
});
Here, we are finding the element ‘Thursday
’ which we saved to a variable as follows:
var excludedElement = ['Thursday'];
Now our real here is jQuery.grep, which returns our new array with filtered data.
return value != excludedElement;
And then, we are calling our buildTable
function to formulate our new array to an HTML table. Once we call it, we will get an output as follows:
Complete Code
<html>
<head>
<title>Remove Elements From An Array using JQuery- Sibeesh Passion</title>
<style>
tr{
border:1px solid #ccc;
}
td{
border:1px solid #ccc;
padding: 10px;
}
#body{
margin: 30px;
}
#click{
margin: 30px;
cursor:pointer;
}
</style>
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
</head>
<body>
<a hrefe="#" id="click">Click To Remove</a>
<div id="body"></div>
<script>
$(document).ready(function(){
var myArray = ['Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday','Sunday']
var message="My Array Elements Before Removing";
buildTable(myArray,message);
$("#click").click(function(){
var message="My Array Elements After Removing";
var excludedElement = ['Thursday'];
myArray = jQuery.grep(myArray, function(value) {
return value != excludedElement;
});
buildTable(myArray,message);
});
});
function buildTable(array,message){
var html='<table><caption>'+message+'</caption><tr>';
for(var i=0;i<array.length;i++)
{
html+='<td>'+array[i]+'</td>';
}
html+='</tr></table>';
$("#body").html(html);
}
</script>
</body>
</html>
Demo
Please find out the demo in jsfiddle here: Exclude or remove elements
Conclusion
I hope you liked this tip. Please share your feedback. It is always welcome. Thanks!