Mercurial > browser-couch
changeset 32:68fa98bcc9b5
Slight refactoring that makes the map phase more efficient, but slows down the reduce phase.
| author | Atul Varma <varmaa@toolness.com> |
|---|---|
| date | Tue, 14 Apr 2009 02:12:34 -0700 |
| parents | 8cb658549511 |
| children | 51e6b984dfc7 |
| files | browser-couch.js |
| diffstat | 1 files changed, 6 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/browser-couch.js Mon Apr 13 16:55:12 2009 -0700 +++ b/browser-couch.js Tue Apr 14 02:12:34 2009 -0700 @@ -305,7 +305,7 @@ mapKeys.push(key); item = mapDict[key] = {keys: [], values: []}; } - item.keys.push([key, currDoc.id]); + item.keys.push(currDoc.id); item.values.push(value); } @@ -354,8 +354,11 @@ do { var key = mapKeys[i]; var item = mapDict[key]; + var keys = item.keys.map(function pairKeyWithDocId(docId) { + return [key, docId]; + }); rows.push({key: key, - value: reduce(item.keys, item.values)}); + value: reduce(keys, item.values)}); i++; } while (i - iAtStart < chunkSize && i < mapKeys.length) @@ -376,7 +379,7 @@ var key = mapKeys[i]; var item = mapDict[key]; for (var j = 0; j < item.keys.length; j++) { - var id = item.keys[j][1]; + var id = item.keys[j]; var value = item.values[j]; rows.push({id: id, key: key,
