[
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
},
{
"lastName": "Seymour",
"gender": "Female",
"patientID": 18134,
"firstName": "Stephanie",
"age": "111Y"
}
]
How can i check my json before adding whether it contains this value or not...
The most obvious way would be to use a for
loop and iterate over all items in array and compare every time when you'd like to know whether you already have a particular item in it. Trivial but tedious especially when you have many compares to make.
function contains(items, obj) {
var itemKey = null;
var objKey = obj.firstName + ";" + obj.lastName;
var result = false;
for(var i = 0; !result && i < arr.length; i++)
{
itemKey = items[i].firstName + ";" + items[i].lastName;
result = itemKey === objKey;
}
return result;
};
Whenever you'd be searching for existing object:
contains(arr, newObj);
This code uses the ability of Javascript whose prototypes can be used as arrays in a sort of associative memory storage. Suppose you have your JSON items in arr
variable. Define your compare key (say it's first name and last name):
var arr = /* your JSON object */;
var hash = (function() {
var keys = {};
return {
contains: function(key) {
return keys[key] === true;
},
add: function(key) {
if (keys[key] !== true)
{
keys[key] = true;
}
}
};
})();
var key = null;
for (var i = 0; i < arr.length; i++)
{
key = arr[i].firstName + ";" + arr[i].lastName;
if (!hash.contains(key))
{
hash.add(key);
}
}
Finding out whether you already have an item in your array is then pretty simple:
hash.contains(key);
And that's it. Much faster than iterating over the whole array. Especially when it has many items.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With