Stackoverflow 2012-03-18b
by john_s
HTML
<div id="output1">
</div>
<div id="output2">
</div>
<div id="output3">
</div>
JavaScript
var oldArray = [
{ name: 'alan' },
{ name: 'bob' },
{ name: 'clark' },
{ name: 'dave' },
{ name: 'eric' },
{ name: 'fred' }
];
var newArray = [
{ name: 'alan' },
{ name: 'bert' },
{ name: 'clark' },
{ name: 'drew' },
{ name: 'eric' },
{ name: 'filmore' },
{ name: 'george' }
];
var commonNameArray = [],
oldNameArray = [],
newNameArray = [];
// Copy all the names from oldArray into oldNameArray.
for (var i = 0; i < oldArray.length; i++) {
oldNameArray.push(oldArray[i].name);
}
// Copy all the names from newArray into newNameArray.
for (var i = 0; i < newArray.length; i++) {
newNameArray.push(newArray[i].name);
}
for (var i = 0; i < oldNameArray.length; i++) {
for (var j = 0; j < newNameArray.length; j++) {
if (newNameArray[j] == oldNameArray[i]) {
commonNameArray.push(newNameArray[j]);
oldNameArray.splice(i--, 1); // Remove and adjust index
newNameArray.splice(j, 1); // Remove
break;
}
}
}
$('#output1').text(commonNameArray.join(',') );
$('#output2').text(oldNameArray.join(','));
$('#output3').text(newNameArray.join(','));