Ad
  • Custom User Avatar

    return boxes.reduce( (result, box) => (result.length > 0 ? result : pathToBomb(box, path)), [] );

    this part of the code is wrong, man. Try debugging, it’s a nullability issue

  • Custom User Avatar

    That's a good point. I chose reduce, because I preferred a declarative style for this exercise. Since the array contains only a few boxes, the performance difference is negligible. For a much larger dataset, though, I'd definitely switch to an early-exit loop. Thanks for the feedback!

  • Custom User Avatar

    The traverseBoxes uses a reduce method, that will iterate over all elements of the array, even if it finds the result on the first one. Consider:

    export function traverseBoxes(boxes: Box[], path: string[] = []): string[] {
    for (const box of boxes) {
    const result = pathToBomb(box, path);
    if (result.length > 0) return result;
    }
    return [];
    }