compare 2 arrays
by spacexplorer
JavaScript
oldArray = new Array({name:"aaaa",age:12},{name:"bbbbb",age:13},{name:"cccc",age:14},{name:"ffff",age:18});
newArray = new Array({name:"aaaa",age:88},{name:"cccc",age:14},{name:"dddd",age:15},{name:"xxxx",age:66},{name:"ffff",age:88});
//update oldArray with NewArray
str = "> start...7<br/>"
//delete AND update
str += "> test delete+update...<br/>"
del = false;
//loop through old --create tempArray
for(i=0; i<oldArray.length; i++){
str += "> i"+i+"/"+oldArray.length+":"+oldArray[i].name+"<br/>";
for(n=0; n<newArray .length; n++){
//find in new
if((oldArray[i].name) == (newArray[n].name)){
str += "found: "+oldArray[i].name+" at "+n+"<br/>";
del = false;
//test change
if (oldArray[i].age != newArray[n].age) {
str += "> update "+oldArray[i].age+" to "+newArray[n].age+"<br/>"
oldArray[i].age = newArray[n].age;
}
break;
}else{
del = true;
}
}
if (del == true){
str += "did not find: "+oldArray[i].name+"<br/>";
oldArray.splice(i,1);
//reset counter -1
i = i-1;
}
}
//add
var add = false;
str += "> add...<br/>";
for(n=0; n<newArray.length; n++){
add = true;
for(i=0; i<oldArray.length; i++){
if((oldArray[i].name) == (newArray[n].name)){
add = false;
//str += "new "+newArray[n].name+" at "+n;
//found it - don't look further
break;
}
}
if (add == true)
{
oldArray.push(newArray[n]);
}
}
str += "> test output...<br/>"
for(i=0; i<oldArray.length; i++){
str += oldArray[i].name+":"+oldArray[i].age+"<br/>";
}
document.write(str);