findBy({ value, index = Infinity } = {}) {
    for (let current = this.first, position = 0; // <1>
      current && position <= index; // <2>
      position += 1, current = current.next) { // <3>
      if (position === index || value === current.value) { // <4>
        return { node: current, index: position }; // <5>
      }
    }
    return {}; // not found
  }
Find by index or by value, whichever happens first.
Runtime: O(n)
@example
 this.findBy({ index: 10 }).node; // node at index 10.
 this.findBy({ value: 10 }).node; // node with value 10.
 this.findBy({ value: 10 }).index; // node's index with value 10.

@param {Object} params - The search params
@param {number} params.index - The index/position to search for.
@param {any} params.value - The value to search for.
@returns {{node: any, index: number}}