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?
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>
)
Pour obtenir les premiers éléments n
d'un tableau, utilisez
array.slice(0, n);
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
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} />
);
});
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
Vous pouvez filtrer en utilisant index
of array.
var months = ['Jan', 'March', 'April', 'June'];
months = months.filter((month,idx) => idx < 2)
console.log(months);
Avec https://www.npmjs.com/package/manipula vous pouvez le faire par le style LINQ:
Manipula.from([0,1]).take(1).toArray();