web-dev-qa-db-fra.com

Comment obtenir le premier nombre N d'éléments d'un tableau

Je travaille avec Javascript (ES6)/FaceBook et réagit en essayant d'obtenir les 3 premiers éléments d'un tableau de taille variable. Je voudrais faire l'équivalent de Linq prendre (n).

Dans mon fichier Jsx, j'ai les éléments suivants:

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

Ensuite, pour obtenir les 3 premiers articles que j'ai essayés

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

Cela n'a pas fonctionné car la carte n'a pas de fonction définie.

Peux-tu aider s'il te plait?

193
user1526912

Je crois que ce que vous cherchez, c'est: 

// ...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>   
)
211
Patrick Shaughnessy

Pour obtenir les premiers éléments n d'un tableau, utilisez

array.slice(0, n);
350
Oriol

Cela peut paraître surprenant, mais la propriété length d’un tableau n’est pas seulement utilisée pour obtenir le nombre d’éléments d’un tableau, elle est également inscriptible et peut être utilisée pour définir la longueur du tableau lien MDN . Cela va muter le tableau.

Si le tableau actuel n’est plus nécessaire et que vous ne vous souciez pas de l’immuabilité ou que vous ne voulez pas allouer de mémoire, c’est-à-dire que pour un jeu le moyen le plus rapide est

arr.length = n

vider un tableau

arr.length = 0
14
Pawel

N'essayez pas de faire cela en utilisant une fonction de carte. La fonction Map doit être utilisée pour mapper les valeurs d'une chose à une autre. Lorsque le nombre d'entrées et de sorties correspond.

Dans ce cas, utilisez la fonction de filtrage qui est également disponible sur le tableau. La fonction de filtrage est utilisée lorsque vous souhaitez prendre des valeurs de manière sélective en traitant certains critères. Ensuite, vous pouvez écrire votre code comme

var items = list
             .filter((i, index) => (index < 3))
             .map((i, index) => {
                   return (
                     <myview item={i} key={i.id} />
                   );
              });
8
sandeep

Ce qui suit a fonctionné pour moi.

array.slice( where_to_start_deleting, array.length )

Voici un exemple

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.splice(2, fruits.length);
//Banana,Orange
1
FlyingSnowGhost

Vous pouvez filtrer en utilisant index of array. 

var months = ['Jan', 'March', 'April', 'June'];
months = months.filter((month,idx) => idx < 2)
console.log(months);

1
Freddy

Avec https://www.npmjs.com/package/manipula vous pouvez le faire par le style LINQ:

Manipula.from([0,1]).take(1).toArray();
0
razon