17 lines
		
	
	
		
			378 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			17 lines
		
	
	
		
			378 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| "use strict";
 | |
| 
 | |
| var value   = require("./valid-value")
 | |
|   , isValue = require("./is-value");
 | |
| 
 | |
| module.exports = function (obj/*, …names*/) {
 | |
| 	var length, current = 1;
 | |
| 	value(obj);
 | |
| 	length = arguments.length - 1;
 | |
| 	if (!length) return obj;
 | |
| 	while (current < length) {
 | |
| 		obj = obj[arguments[current++]];
 | |
| 		if (!isValue(obj)) return undefined;
 | |
| 	}
 | |
| 	return obj[arguments[current]];
 | |
| };
 |