¿Cómo escribir una función que devuelva elementos de array más grandes que un número en JavaScript?

Dada una array arr y el número n , la tarea es escribir una función que devuelva una array cuyos elementos sean mayores que n.

Ejemplo:

Input:   arr = [65, 16, 0, 6, 64, 1, 68]
         n = 16
Output:  [65, 64, 68]
  
Input:   arr = [6, 46, 54, 6, 56, 54, 65, 4, 65]
        n =50
Output: [54, 56, 54, 65, 65]

Para lograr esto tenemos los siguientes enfoques:

Enfoque 1: Usar Array.filter()

En este enfoque, usamos el método Array.filter . En cada iteración, verificamos si el valor es mayor que num o no.

Ejemplo:

Javascript

<script>
let returnLarger = (arr, num) => arr.filter(n => n > num);
 
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16))
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50))
</script>

Producción:

[65, 64, 68]
[54, 56, 54, 65, 65]

Enfoque 2: Usar Array.reduce()

En este enfoque, usamos el método array.reduce. Inicialice el acumulador usando una array vacía y en cada iteración verifique si el valor actual es mayor que num , luego concatene el valor actual con el acumulador y devuélvalo; de lo contrario, devuelva el acumulador tal como está.

Ejemplo:

Javascript

<script>
// Creating a function that return an array
// whose items are less than num
let returnLarger = (arr, num) => {
  return arr.reduce((acc, curr)=>{ 
    if(curr > num){
      return acc.concat(curr)  // Concatenate the acc with arr
    }else{
      return acc
    }
  }, [])   // Initialize the accumulator with an empty array
}
 
 
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16))
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50))
</script>

Producción:

[65, 64, 68]
[54, 56, 54, 65, 65]

Enfoque 3: Usando el método Array.map:

En este enfoque, iteramos la array usando el método map y en cada iteración, verificamos si el valor actual es mayor que num o no. Si es verdadero, devolvemos el valor como tal. Si es falso, reemplace el elemento con una string vacía (o cualquier valor falso). Después de eso, usando el método de filtro, elimine los valores falsos.

Javascript

<script>
// Creating a function that return an array
// whose items are less than num
let returnLarger = (arr, num) => {
  return arr.map(v => v > num ? v : "").filter(Boolean)
}
 
 
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16))
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50))
</script>

Producción:

[65, 64, 68]
[54, 56, 54, 65, 65]

Enfoque 4: usando el ciclo for:

En este enfoque, creamos una array vacía e iteramos la array dada usando el ciclo for y en cada iteración, verificamos que el valor actual sea mayor que num o no. Si es verdadero, empujamos el valor en la array recién creada.

Javascript

<script>
// Creating a function that return an array
// whose items are less than num
 
let returnLarger = (arr, num) => {
  let newArr = []
    
  for(let i = 0; i < arr.length; i++){
    if(arr[i] > num){
      newArr.push(arr[i])
    }
  }
   
  return newArr
}
 
 
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16))
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50))
</script>

Producción:

[65, 64, 68]
[54, 56, 54, 65, 65]

Enfoque 5: usando el bucle forEach:

En este enfoque, creamos una array vacía e iteramos la array dada usando forEach loop y en cada iteración, realizamos una expresión con un operador donde el primer operador verifica que el valor actual sea mayor que num o no si devuelve una nueva operación falsa no se realiza y si devuelve verdadero, empuja el elemento a la array.

Javascript

<script>
// Creating a function that return an array
// whose items are less than num
 
let returnLarger = (arr, num) => {
let newArr = []
     
arr.forEach( ele => (ele > num) && newArr.push(ele))
 
return newArr
}
 
 
console.log(returnLarger( [65, 16, 0, 6, 64, 1, 68], 16))
console.log(returnLarger([6, 46, 54, 6, 56, 54, 65, 4, 65], 50))
 
</script>

Producción:

[ 65, 64, 68 ]
[ 54, 56, 54, 65, 65 ]

Publicación traducida automáticamente

Artículo escrito por _saurabh_jaiswal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *