See https://github.com/zotero/zotero/pull/224 for the relevant discussion.

But for anything except for huge arrays, it really doesn't matter, and, in our closed environment (where we know that nothing has extended Array) I don't think there's any reason to avoid for...in, which makes the code a lot cleaner. We definitely shouldn't change existing non-huge loops just for the sake of it. (for each...in was technically part of E4X and may go away at some point, though that removal is currently WONTFIX.)