lib/index.js
function pluckDeepWithSelectors(coll, selectors) {
  // No more selectors
  if (!selectors.length) return coll;

  // Pluck the current value from the given selector
  let sel = selectors[0];

  let filtered = coll;

  // Filter if applicable
  const filter = parseFilter(sel);

  if (filter) {
    filtered = filterColl(coll, filter);

    if (!filtered || (Array.isArray(filtered) && !filtered.length)) return null;

    sel = filter.selector;
  }

  const p = pluck(filtered, sel);

  // No values found for current selector
  if (isUndef(p) || (Array.isArray(p) && p.some(isUndef))) {
    return null;
  }

  // Recursively call with the remaining selectors
  return pluckDeepWithSelectors(p, selectors.slice(1));
}
function pluckDeepWithSelectors(coll, selectors) {
  // No more selectors
  if (!selectors.length) return coll;

  // Pluck the current value from the given selector
  let sel = selectors[0];

  let filtered = coll;

  // Filter if applicable
  const filter = parseFilter(sel);

  if (filter) {
    filtered = filterColl(coll, filter);

    if (!filtered || (Array.isArray(filtered) && !filtered.length)) return null;

    sel = filter.selector;
  }

  const p = pluck(filtered, sel);

  // No values found for current selector
  if (isUndef(p) || (Array.isArray(p) && p.some(isUndef))) {
    return null;
  }

  // Recursively call with the remaining selectors
  return pluckDeepWithSelectors(p, selectors.slice(1));
}
Recursively walk