comparing one dictionary with array of dictionary

Tags: , , , ,

I want to add or remove a dictionary on the array based on two cases. For example, Let us create a array of dictionary,

var Result=[{'a':1},{'b':2},{'c':3},{'d':4}];

Let us consider two cases, Case-1: An input dictionary that has both the same key and value which is in the Result variable.


then the result should be,

 var Result=[{'a':1},{'b':2},{'d':4}];

Case-2: An input dictionary that has the same key and different value(input1) and vice versa(input2) or both different key and value(input3) which the Result variable array have.


then the result should be,

var Result=[{'a':1},{'b':2},{'c':3},{'d':4},{'d':6},{'x':3},{'e':10}];

Thanks in advance


You could find the index of the given key/value pair and remove this item of the array or push the object to the array.

This approach mutates the array.

function update(array, object) {
    var [key, value] = Object.entries(object)[0],
        index = array.findIndex(o => o[key] === value);

    if (index === -1) {
    } else {
        array.splice(index, 1);

var array = [{ a: 1 }, { b: 2 }, { c: 3 }, { d: 4 }],
    input1 = { c: 3 },
    input2 = { d: 6 };

update(array, input1),

update(array, input2);
.as-console-wrapper { max-height: 100% !important; top: 0; }

Source: stackoverflow