Ensure baseGet and result work with strings on nested objects.

This commit is contained in:
jdalton
2015-04-14 22:34:32 -07:00
parent 0e8277ba9e
commit 8581be4977
2 changed files with 9 additions and 3 deletions

View File

@@ -2305,7 +2305,7 @@
length = path.length;
while (object != null && ++index < length) {
var result = object = object[path[index]];
var result = object = toObject(object)[path[index]];
}
return result;
}
@@ -10021,7 +10021,7 @@
if (object != null && !isKey(path, object)) {
path = toPath(path);
object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
result = object == null ? undefined : object[last(path)];
result = object == null ? undefined : toObject(object)[last(path)];
}
result = result === undefined ? defaultValue : result;
}

View File

@@ -13159,12 +13159,18 @@
});
});
test('`_.' + methodName + '` should get characters of string indexes (test in IE < 9)', 4, function() {
test('`_.' + methodName + '` should get characters of string indexes (test in IE < 9)', 8, function() {
_.each([1, [1]], function(path) {
_.each(['xo', Object('xo')], function(string) {
strictEqual(func(string, path), 'o');
});
});
_.each([{ 'a': 'xo' }, { 'a': Object('xo') }], function(object) {
_.each(['a[1]', ['a', '1']], function(path) {
strictEqual(func(object, path), 'o');
});
});
});
test('`_.' + methodName + '` should get a key over a path', 2, function() {