map (callback) {
      const items = []
      for (let i = 0; i < this.items.length; i++) {
        items[i] = this._ifNode(callback(this.items[i], 'items[' + i + ']', this))
      }
      return new ArrayNode(items)
    }
Create a new ArrayNode 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 {ArrayNode} Returns a transformed copy of the node