Dia 6: Verificación de regalos en la caja

Ya hemos empaquetado cientos de regalos 🎁… pero a un elfo se le ha olvidado revisar si el regalo, representado por un asterisco *, está dentro de la caja.

La caja tiene un regalo (*) y cuenta como dentro de la caja si:

Ten en cuenta entonces que el * puede estar dentro, fuera o incluso no estar. Y debemos devolver true si el * está dentro de la caja y false en caso contrario.

Ejemplos:

inBox([
  "###",
  "#*#",
  "###"
]) // ➞ true

inBox([
  "####",
  "#* #",
  "#  #",
  "####"
]) // ➞ true

inBox([
  "*####",
  "#   #",
  "#  #*",
  "####"
]) // ➞ false

inBox([
  "#####",
  "#   #",
  "#   #",
  "#   #",
  "#####"
]) // ➞ false

Solution

function inBox(box) {
  for (let i = 1; i < box.length - 1; i++) {
    const row = box[i]
    const starIndex = row.indexOf('*')
    if (starIndex > 0 && starIndex < row.length - 1) {
      return true
    }
  }
  return false
}

inBox([
  '*****',
  '*   *',
  '* * *',
  '*   *',
  '*****'
])