I think, though I may be incorrect, that you need to explicitly declare your Address var in the loop:
for (var Address in Deal.getAddresses()){ ... } You may also want to try creating a variable for Deal.getAddresses() outside of the loop: var allAddresses=Deal.getAddresses(); for (var Address in allAddresses){ ... } Jon > On Dec 20, 2014, at 12:10 PM, Dean Lawrence <dean...@gmail.com> wrote: > > > Thanks Rodney. I was hoping that what you suggested would work, but > unfortunately, it did not. I tried it in both ACF 10 and ACF 11. I'm still > left with empty structs inside the array. > > On Sat, Dec 20, 2014 at 11:22 AM, Rodney Enke <renk...@gmail.com> wrote: > >> >> I believe you are just passing a reference of the tmpAddress to the array, >> so it is being overridden with each loop. Try the following to insert a >> copy of the structure into the array instead: >> >> ArrayAppend(results.Deal.addresses,duplicate(tmpAddress)); >> >> - >> Rodney >> >> On Fri, Dec 19, 2014 at 4:39 PM, Dean Lawrence <dean...@gmail.com> wrote: >> >>> >>> I have a remote method which is retrieving a deal object, populating a >>> structure and returning it to the client requesting it. This is all well >>> and good. However, the deal object has multiple address objects >> associated >>> to it. When looping over these addresses, I am having trouble adding them >>> to an array. Here is my code: >>> >>> for (Address in Deal.getAddresses()){ >>> tmpAddress.street = Address.getStreet(); >>> tmpAddress.street2 = Address.getStreet2(); >>> tmpAddress.city = Address.getCity(); >>> tmpAddress.state = Address.getState(); >>> tmpAddress.postalcode = Address.getPostalcode(); >>> tmpAddress.phone = Address.getPhone(); >>> ArrayAppend(results.Deal.addresses,tmpAddress); >>> } >>> >>> The problem that I am having is that the results.Deal.addresses key ends >> up >>> with an array of empty structures, the total number matching the total >>> addresses associated to this deal. So in my test case, the deal that I am >>> working on has a single address, so the results.Deal.addresses key is an >>> array with on empty structure in it (no keys). However, if I don't try to >>> append to the array by doing this: >>> >>> for (Address in Deal.getAddresses()){ >>> tmpAddress.street = Address.getStreet(); >>> tmpAddress.street2 = Address.getStreet2(); >>> tmpAddress.city = Address.getCity(); >>> tmpAddress.state = Address.getState(); >>> tmpAddress.postalcode = Address.getPostalcode(); >>> tmpAddress.phone = Address.getPhone(); >>> results.Deal.addresses = tmpAddress; >>> } >>> >>> The results.Deal.addresses key is now a struct and all the address keys >>> assigned properly, so I know the tmpAddress struct is being populated >>> properly. Does anyone have any thoughts as to what might be going on? I >> am >>> running ACF 10 and yes, I have var scoped the results, Deal and >> tmpAddress >>> variables at the top of the method. I also tried adding "local" to the >>> Address variable in the for loop, but it did not help. >>> >>> Thansk, >>> >>> -- >>> >>> [image: profile picture] *Dean Lawrence* >>> *President* >>> Internet Data Technology >>> *Phone:* 888-438-4381 x701 >>> *Web:* www.idatatech.com >>> *Email:* d...@idatatech.com >>> Programming | Database | Consulting | Training >>> >>> >>> >> >> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Order the Adobe Coldfusion Anthology now! http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:359869 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm