Ensure _.get can return null values. [closes #1216]

This commit is contained in:
jdalton
2015-05-19 08:18:01 -07:00
parent 882d84f1e6
commit c6f8896826
2 changed files with 11 additions and 3 deletions

View File

@@ -2259,11 +2259,11 @@
if (pathKey !== undefined && pathKey in object) { if (pathKey !== undefined && pathKey in object) {
path = [pathKey]; path = [pathKey];
} }
var index = -1, var index = 0,
length = path.length; length = path.length;
while (object != null && ++index < length) { while (object != null && index < length) {
object = toObject(object)[path[index]]; object = toObject(object)[path[index++]];
} }
return (index && index == length) ? object : undefined; return (index && index == length) ? object : undefined;
} }

View File

@@ -13660,6 +13660,14 @@
}); });
}); });
test('`_.' + methodName + '` should be able to return `null` values', 2, function() {
var object = { 'a': { 'b': null } };
_.each(['a.b', ['a', 'b']], function(path) {
strictEqual(func(object, path), null);
});
});
test('`_.' + methodName + '` should follow `path` over non-plain objects', 4, function() { test('`_.' + methodName + '` should follow `path` over non-plain objects', 4, function() {
var object = { 'a': '' }, var object = { 'a': '' },
paths = ['constructor.prototype.a', ['constructor', 'prototype', 'a']]; paths = ['constructor.prototype.a', ['constructor', 'prototype', 'a']];