You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					36 lines
				
				780 B
			
		
		
			
		
	
	
					36 lines
				
				780 B
			| 
											2 years ago
										 | var assert = require('assert'); | ||
|  | var Traverse = require('traverse'); | ||
|  | 
 | ||
|  | exports.dateEach = function () { | ||
|  |     var obj = { x : new Date, y : 10, z : 5 }; | ||
|  |      | ||
|  |     var counts = {}; | ||
|  |      | ||
|  |     Traverse(obj).forEach(function (node) { | ||
|  |         var t = (node instanceof Date && 'Date') || typeof node; | ||
|  |         counts[t] = (counts[t] || 0) + 1; | ||
|  |     }); | ||
|  |      | ||
|  |     assert.deepEqual(counts, { | ||
|  |         object : 1, | ||
|  |         Date : 1, | ||
|  |         number : 2, | ||
|  |     }); | ||
|  | }; | ||
|  | 
 | ||
|  | exports.dateMap = function () { | ||
|  |     var obj = { x : new Date, y : 10, z : 5 }; | ||
|  |      | ||
|  |     var res = Traverse(obj).map(function (node) { | ||
|  |         if (typeof node === 'number') this.update(node + 100); | ||
|  |     }); | ||
|  |      | ||
|  |     assert.ok(obj.x !== res.x); | ||
|  |     assert.deepEqual(res, { | ||
|  |         x : obj.x, | ||
|  |         y : 110, | ||
|  |         z : 105, | ||
|  |     }); | ||
|  | }; | ||
|  | 
 |