I even learned that using for (... in ...) is not safe for use with arrays. I
tend to use Array.forEach() [0] like this:
----
function(doc) {
if (doc.users) {
doc.users.forEach(function(user) {
emit(user, doc);
});
}
}
----
I'm not very proficient in JavaScript, so maybe there is no real in advantage
in the realm of CouchDB.
Nils Breunese.
[0]
https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference:Objects:Array:forEach
________________________________________
Van: Jan Lehnardt [[email protected]]
Verzonden: woensdag 2 september 2009 21:54
Aan: [email protected]
Onderwerp: Re: View to find someone in a list in a document
Style police!
On 2 Sep 2009, at 19:00, Simon Metson wrote:
> Hi,
> Do you mean you want to emit each user as a key? Something like:
>
> function(doc) { for (v in doc.users) { emit(doc.users[v], doc); }
is better written as
function(doc) { for (var v in doc.users) { emit(doc.users[v], doc); }
if you leave out the `var` you create a global variable (as opposed to
a local variable in JS and that can have funky effects.
better yet:
function(doc) { if(doc.users) { for (var v in doc.users) { emit
(doc.users[v], doc); }}
protects you against errors for documents that doesn't have a `users`
property.
otherwise, excellent advice! :)
Cheers
Jan
De informatie vervat in deze e-mail en meegezonden bijlagen is uitsluitend
bedoeld voor gebruik door de geadresseerde en kan vertrouwelijke informatie
bevatten. Openbaarmaking, vermenigvuldiging, verspreiding en/of verstrekking
van deze informatie aan derden is voorbehouden aan geadresseerde. De VPRO staat
niet in voor de juiste en volledige overbrenging van de inhoud van een
verzonden e-mail, noch voor tijdige ontvangst daarvan.