From what I understand, you want to get all arrays in new_dataArray that are not in old_dataArray and I'm assuming that if the first element in each (the 'id-n' element) is the same, then so is the rest of the array. You can do so like this:
// create an array to store our results:
var results = new Array();
// loop through new_dataArray:
outerloop:
for (var i = 0; i < new_dataArray.length; ++i) {
// loop through old_dataArray to compare the i'th element
// in new_dataArray with each in old_dataArray:
for (var j = 0; j < old_dataArray.length; ++j) {
// check if the ids are the same
if (new_dataArray[i][0] == old_dataArray[j][0])
// yes it's there, so move on to the next element of new_dataArray
continue outerloop;
}
// if we get here, continue outerloop; was never called so
// this element is not in old_dataArray
results.push(new_dataArray[i]);
}
// now results contains all arrays that are in new_dataArray
// but not in old_dataArray
EDIT: If, however, you want ALL the elements in each array to be equal, not just the first (id-n) element, use this:
// create an array to store our results:
var results = new Array();
// loop through new_dataArray:
outerloop:
for (var i = 0; i < new_dataArray.length; ++i) {
// loop through old_dataArray to compare the i'th element
// in new_dataArray with each in old_dataArray:
innerloop:
for (var j = 0; j < old_dataArray.length; ++j) {
// check if the arrays are the same size:
if (new_dataArray[i].length != old_dataArray[j].length)
// no, so they must be different
continue innerloop;
// check if the arrays have the same values
for (var k = 0; k < old_dataArray[j].length; ++k) {
if (new_dataArray[i][k] != old_dataArray[j][k])
// the k'th element is different
continue innerloop;
}
// if we get here, then we have found a match, so move on
continue outerloop;
}
// if we get here, continue outerloop; was never called so
// this element is not in old_dataArray
results.push(new_dataArray[i]);
}
// now results contains all arrays that are in new_dataArray
// but not in old_dataArray
new Array(1,2,3)syntax, just use array literal[1,2,3]syntax. When you say you want to find nested arrays contained only inold_dataArrayand notnew_dataArraydo you mean to compare each nested array by identity or by value? (I.e., compare based on whether they reference the same array object or find them if they have the some number of elements with the same values?)