Skip to content

Instantly share code, notes, and snippets.

@dvv
Created September 21, 2010 21:12
Show Gist options
  • Save dvv/590563 to your computer and use it in GitHub Desktop.
Save dvv/590563 to your computer and use it in GitHub Desktop.
// support dotted fields
// N.B. ?select(name.en) returns {name: {en: 'Russia'}} while should {en: 'Russia'}
// TODO: optimize!
// first assign deeper properties
for (var j = 0; j < fields.length; ++j) {
if (fields[j].indexOf('.') < 0) continue;
var r = results[i];
var parts = fields[j].split('.');
for (var k = 0; k < parts.length; ++k) {
r = r[parts[k]];
}
results[i][parts[parts.length-1]] = r;
}
// then remove enclosing properties
for (var j = fields.length; --j >= 0; ) {
if (fields[j].indexOf('.') < 0) continue;
var parts = fields[j].split('.');
delete results[i][parts[0]];
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment