DEV Community

loading...

Condicional mais legível com Array.includes()

gabrielrufino profile image Gabriel Rufino Updated on ・1 min read

Você conhece a função Array.includes() do javascript? Essa função foi especificada no ES7 e é capaz de tornar uma condicional bem mais legível.

Essa função determina se um parâmetro está contido no array.

const numbers = [1, 2, 3, 4]
const strings = ['Gabriel', 'Rufino']

numbers.includes(3) // true
numbers.includes(6) // false
strings.includes('Rufino') // true
strings.includes('Fernando') // false
Enter fullscreen mode Exit fullscreen mode

Conhecendo essa função, agora você pode escrever condicionais que comparam uma variável com muitas possibilidades mais legíveis trocando o or pelo Array.includes() usando a variável como parâmetro. Veja o exemplo:

Usando o operador or

function get(request, response) {
  const access = request.access

  if (access === 'maintainer' || access === 'admin' || access === 'developer') {
    return response.json({ allowed: true })
  } else {
    return response.json({ allowed: false })
  }
}
Enter fullscreen mode Exit fullscreen mode

Usando Array.includes()

function get(request, response) {
  const access = request.access

  if (['maintainer', 'admin', 'developer'].includes(access)) {
    return response.json({ allowed: true })
  } else {
    return response.json({ allowed: false })
  }
}
Enter fullscreen mode Exit fullscreen mode

Funciona com NaN

NaN === NaN // false
[1, 2, 3, NaN].includes(NaN) // true
Enter fullscreen mode Exit fullscreen mode

Discussion (0)

pic
Editor guide