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(','));