1
\$\begingroup\$

I'm pretty sure there's a way to make this "3 times" duplicated code into only one. Any idea how to do this?

if (typeof sync.create!='undefined') {
    for (var i = 0; i <sync.create.length; i++) {
        sync.create[i].modified.id_partenaire=false;
    };  
}   
if (typeof sync.update!='undefined') {
    for (var i = 0; i <sync.update.length; i++) {
        sync.update[i].modified.id_partenaire=false;
    };  
}   
if (typeof sync.destroy!='undefined') {
    for (var i = 0; i <sync.destroy.length; i++) {
        sync.destroy[i].modified.id_partenaire=false;
    };  
}   
\$\endgroup\$
3
\$\begingroup\$

If this should be executed on all properties of sync in general, i'd go with a for..in loop.

for(var prop in sync){
  if(sync.hasOwnProperty(prop) && typeof sync[prop] !== 'undefined'){
    var i=0, l = sync[prop].length;
    for (i; i < l; i+=1) {
        sync[prop][i].modified.id_partenaire=false;
    };
  }
}

Otherwise, if there are more properties and this should only be applied to these 3, Esailija's answer works better.

| improve this answer | |
\$\endgroup\$
  • \$\begingroup\$ I didn't want on all properties, but thank you very much for you suggestion, this may help for other object / properties manipulations in the future. \$\endgroup\$ – Olivier Pons Jun 22 '12 at 9:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.