Cómo obtener el primer N número de elementos de una matriz


Estoy trabajando con Javascript(ES6) /Facebook react y tratando de obtener los primeros 3 elementos de una matriz que varía en tamaño. Me gustaría hacer el equivalente de Linq tomar (n).

En mi archivo Jsx tengo lo siguiente:

var items = list.map(i => {
  return (
    <myview item={i} key={i.id} />
  );
});

Luego para obtener los primeros 3 elementos que intenté

  var map = new Map(list);
    map.size = 3;
    var items = map(i => {
      return (<SpotlightLandingGlobalInboxItem item={i} key={i.id} />);
    });

Esto no funcionó ya que map no tiene una función set.

¿Puedes ayudar?

Author: user1526912, 2016-01-19

4 answers

Creo que lo que estás buscando es:

// ...inside the render() function

var size = 3;
var items = list.slice(0, size).map(i => {
    return <myview item={i} key={i.id} />
}

return (
  <div>
    {items}
  </div>   
)
 161
Author: Patrick Shaughnessy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-19 17:33:37

Para obtener los primeros elementos n de una matriz, use

array.slice(0, n);
 268
Author: Oriol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-19 17:23:41

Esto puede ser sorprendente, pero length la propiedad de un array no solo se usa para obtener el número de elementos del array, sino que también se puede escribir y se puede usar para establecer la longitud del array MDN link. Esto mutará la matriz.

Si la matriz actual ya no es necesaria y no le importa la inmutabilidad o no desea asignar memoria, es decir, para un juego, la forma más rápida es

arr.length = n

Para vaciar un array

arr.length = 0
 10
Author: Pawel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-13 15:15:54

No intente hacer eso usando una función de mapa. La función Map debe usarse para mapear valores de una cosa a otra. Cuando el número de entrada y salida coinciden.

En este caso use la función de filtro que también está disponible en la matriz. Función de filtro se utiliza cuando desea tomar selectivamente valores maching ciertos criterios. Entonces puedes escribir tu código como

var items = list
             .filter((i, index) => (index < 3))
             .map((i, index) => {
                   return (
                     <myview item={i} key={i.id} />
                   );
              });
 6
Author: sandeep,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-19 19:30:15