agDev agDev - 1 year ago 75
Javascript Question

Check if object exists in an array before pushing

I have an empty array and a selectable tree, and every time when the user is checking or un-checking a node I'm pushing the node's id and if the checkbox is true or false.

But right now if the user will check and then un-check a node there will be two objects in the array of the same node how can i make sure that doesn't happen?

//creating empty array

var checkedItems = [];

//(in kendo observable) on user selection I'm pushing the checked node to array

onItemChecked : function (e) {
var node = e.sender.dataItem(e.node);
checkedItems.push({Id: node.Id, IsChecked: node.checked});

Answer Source

You can, before pushing a new object, check the presence of an object that has that id.

var el = checkedItems.filter(function(el) {
    return el.Id === node.Id;

if (el.length) {
    el[0].IsChecked = node.checked;
} else {
   // push a new object