Skip to content

Commit

Permalink
fix bug path == undefiend
Browse files Browse the repository at this point in the history
  • Loading branch information
0xvoidmain committed Dec 3, 2016
1 parent c72bd70 commit 13cbeb7
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 7 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,14 @@ var testObject = {
'[abc"de"]': 3
}

console.log(get(testObject, ''), testObject);

console.log(get(testObject), testObject);

console.log(get(testObject, 'a.b.c'), testObject.a.b.c);

console.log(get(testObject, '["a.b"]'), testObject['a.b']);

console.log(get(testObject, '[\'abc"de"\']'), testObject['abc"de"']);

console.log(get(testObject, '[\'[abc"de"]\']'), testObject['[abc"de"]']);
Expand Down
3 changes: 3 additions & 0 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ var parsePath = require('./ParsePath');
var hasOwnProp = Object.prototype.hasOwnProperty;

function get(obj, path) {
if (path === undefined || path === null) {
return obj;
}
var result = null;
var keys = typeof path == 'string' ?
parsePath(path) :
Expand Down
32 changes: 25 additions & 7 deletions test.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,22 +27,40 @@ var testObject = {
}],

'abc"de"': 2,
'[abc"de"]': 3
'[abc.de]': 3,
'a.b': 3
}

console.log('testObject = ' + JSON.stringify(testObject, null, 4));

console.log('Test:', "assert.equal(get(testObject, ''), testObject);");
assert.equal(get(testObject, ''), testObject);
console.log('>> Ok\n');


console.log('Test:', "assert.equal(get(testObject), testObject);");
assert.equal(get(testObject), testObject);
console.log('>> Ok\n');

console.log('Test:', "assert.equal(get(testObject, 'a.b.c'), testObject.a.b.c);");
assert.equal(get(testObject, 'a.b.c'), testObject.a.b.c);
console.log('>> Ok\n');

// console.log('Test:', "get(testObject, '[\'abc\"de\"\']'), testObject['abc\"de\"'];");
// assert.equal(get(testObject, '[\'abc"de"\']'), testObject['abc"de"']);
// console.log('>> Ok\n');
console.log('Test:', "assert.equal(get(testObject, '[\"a.b\"]'), testObject['a.b']);");
assert.equal(get(testObject, '["a.b"]'), testObject['a.b']);
console.log('>> Ok\n');

// console.log('Test:', "assert.equal(get(testObject, '[\'[abc\"de\"]\']'), testObject['[abc\"de\"]']);");
// assert.equal(get(testObject, '[\'[abc"de"]\']'), testObject['[abc"de"]']);
// console.log('>> Ok\n');
console.log('Test:', "get(testObject, '[\'abc\"de\"\']'), testObject['abc\"de\"'];");
assert.equal(get(testObject, '[\'abc"de"\']'), testObject['abc"de"']);
console.log('>> Ok\n');

console.log('Test:', "assert.equal(get(testObject, '[\'[abc\"de\"]\']'), testObject['[abc\"de\"]']);");
assert.equal(get(testObject, '[\'[abc"de"]\']'), testObject['[abc"de"]']);
console.log('>> Ok\n');

console.log('Test:', "assert.equal(get(testObject, ''), testObject);");
assert.equal(get(testObject, ''), testObject);
console.log('>> Ok\n');

console.log('Test:', "assert.equal(get(testObject, 'a.d[0]'), testObject.a.d[0]);");
assert.equal(get(testObject, 'a.d[0]'), testObject.a.d[0]);
Expand Down

0 comments on commit 13cbeb7

Please sign in to comment.