JSFiddle - React, Tailwind, and code Playground
by 100thGear
JavaScript
var old = [{
"ticker": "T",
"positions": ["40", "60", "80"]
}, {
"ticker": "AAPL",
"positions": ["10", "20", "60"]
}, {
"ticker": "IBM",
"positions": ["90", "10", "25"]
}, {
"ticker": "MSFT",
"positions": ["78", "99", "15"]
}];
var newL = [{
"ticker": "GOOG",
"positions": ["40", "60", "80"]
}, {
"ticker": "AAPL",
"positions": ["10", "20", "60"]
}, {
"ticker": "IBM",
"positions": ["90", "16", "25"]
}, {
"ticker": "MSFT",
"positions": ["78", "99", "17"]
}];
Object.prototype.equals = function (x) {
var p;
for (p in this) {
if (typeof (x[p]) == 'undefined') {
return false;
}
}
for (p in this) {
if (this[p]) {
switch (typeof (this[p])) {
case 'object':
if (!this[p].equals(x[p])) {
return false;
}
break;
case 'function':
if (typeof (x[p]) == 'undefined' || (p != 'equals' && this[p].toString() != x[p].toString())) return false;
break;
default:
if (this[p] != x[p]) {
return false;
}
}
} else {
if (x[p]) return false;
}
}
for (p in x) {
if (typeof (this[p]) == 'undefined') {
return false;
}
}
return true;
};
function contains(a, obj) {
for (var i = 0; i < a.length; i++) {
if (a[i].equals(obj)) {
return true;
}
}
return false;
}
var modified = false;
var deleted = [],
added = [],
updated = [];
function comparator(oldList, newList, added, updated, deleted) {
$.each(old, function (oldIdx, oldVal) {
if (contains(newL, oldVal)) return true;
modified = false;
$.each(newL, function (newIdx, newVal) {
if...