popuplateFieldsTest
by Tiago
JavaScript
function populateFieldsAntigo(data, newData, override) {
var propName;
function shouldWrite(data, propName, override) {
return override === true || data[propName] === undefined || data[propName] === 'null';
}
override = override ? override : true;
for (propName in newData) {
if (newData[propName] !== null) {
if (typeof newData[propName] === 'object' && Object.getOwnPropertyNames(newData[propName]).length > 0) {
if (data[propName] === undefined || override) {
data[propName] = newData[propName].constructor === Array ? [] : {};
if (data.clearFields) {
data.clearFields.push(propName);
}
}
this.populateFields(data[propName], newData[propName], override);
} else if (shouldWrite(data, propName, override)) {
data[propName] = newData[propName];
if (data.clearFields) {
data.clearFields.push(propName);
}
}
} else if (shouldWrite(data, propName, override)) {
data[propName] = newData[propName];
if (data.clearFields) {
data.clearFields.push(propName);
}
}
}
return data;
}
function populateFields(data, newData, override) {
var propName;
function shouldWrite(data, propName, override) {
return override === true || data[propName] === undefined || data[propName] === 'null';
}
function populateProperty(data, newData, propName) {
data[propName] = newData[propName];
if (data.clearFields) {
data.clearFields.push(propName);
}
}
function populateArray(localArray, remoteArray) {
var i = 0;
if (localArray == null) {
localArray = [];
}
for (; i < remoteArray.length; i++) {
localArray[i] = remoteArray[i];
}
localArray.splice(i, localArray.length - i);
}
override = override ? override : true;
for (propName in newData) {
if (newData[propName] != null) {
if (typeof newData[propName] === 'object' &&...