Sha256: 4b2e4e71ac2b6b37ec1f031989306810a640587a7cb4d91c587c62038923dcdf
Contents?: true
Size: 1.15 KB
Versions: 3
Compression:
Stored size: 1.15 KB
Contents
var assert = require('assert'); var traverse = require('../'); exports.siblings = function () { var obj = { a : 1, b : 2, c : [ 4, 5, 6 ] }; var res = traverse(obj).reduce(function (acc, x) { var p = '/' + this.path.join('/'); if (this.parent) { acc[p] = { siblings : this.parent.keys, key : this.key, index : this.parent.keys.indexOf(this.key) }; } else { acc[p] = { siblings : [], key : this.key, index : -1 } } return acc; }, {}); assert.deepEqual(res, { '/' : { siblings : [], key : undefined, index : -1 }, '/a' : { siblings : [ 'a', 'b', 'c' ], key : 'a', index : 0 }, '/b' : { siblings : [ 'a', 'b', 'c' ], key : 'b', index : 1 }, '/c' : { siblings : [ 'a', 'b', 'c' ], key : 'c', index : 2 }, '/c/0' : { siblings : [ '0', '1', '2' ], key : '0', index : 0 }, '/c/1' : { siblings : [ '0', '1', '2' ], key : '1', index : 1 }, '/c/2' : { siblings : [ '0', '1', '2' ], key : '2', index : 2 } }); };
Version data entries
3 entries across 3 versions & 2 rubygems