function plucker(args, len) {
    return function mapper(x) {
      var currentProp = x;
      for (var i = 0; i < len; i++) {
        var p = currentProp[args[i]];
        if (typeof p !== 'undefined') {
          currentProp = p;
        } else {
          return undefined;
        }
      }
      return currentProp;
    };
  }
Projects each element of an observable sequence into a new form by incorporating the element's index.
@param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
@param {Any} [thisArg] Object to use as this when executing callback.
@returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source.