\$\begingroup\$
\$\endgroup\$
0
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;
};
}
200_success
145k22 gold badges190 silver badges478 bronze badges
asked Jun 21, 2012 at 10:52
1 Answer 1
\$\begingroup\$
\$\endgroup\$
1
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.
-
\$\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– Olivier Pons2012年06月22日 09:12:07 +00:00Commented Jun 22, 2012 at 9:12
default