map (callback) {
      const dimensions = []
      for (let i = 0; i < this.dimensions.length; i++) {
        dimensions[i] = this._ifNode(
          callback(this.dimensions[i], 'dimensions[' + i + ']', this))
      }

      return new IndexNode(dimensions, this.dotNotation)
    }
Create a new IndexNode whose children are the results of calling
the provided callback function for each child of the original node.
@param {function(child: Node, path: string, parent: Node): Node} callback
@returns {IndexNode} Returns a transformed copy of the node