根据我的理解,你想从新数据中获取所有阵列,这些阵列不是旧数据,假定如果每个要素(id-n要素)中的第一个要素相同,那么其他阵列也是如此。 你可以这样做:
// 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:然而,如果你想要每个阵列的所有要素都平等,而不仅仅是第一个(前)要素,则使用:
// 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