webentwicklung-frage-antwort-db.com.de

Erste Anzahl von Elementen aus einem Array erhalten

Ich arbeite mit Javascript (ES6)/FaceBook React und versuche, die ersten drei Elemente eines Arrays zu ermitteln, die in der Größe variieren. Ich würde gerne das Äquivalent von Linq nehmen (n).

In meiner Jsx-Datei habe ich Folgendes:

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

Dann bekam ich die ersten 3 Gegenstände, die ich ausprobiert habe

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

Dies funktionierte nicht, da Map keine festgelegte Funktion hat.

Können Sie bitte helfen?

193
user1526912

Ich glaube, was Sie suchen, ist: 

// ...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

Um die ersten n-Elemente eines Arrays abzurufen, verwenden Sie

array.slice(0, n);
350
Oriol

Dies mag überraschend sein, aber die length-Eigenschaft eines Arrays wird nicht nur zum Abrufen der Anzahl von Arrayelementen verwendet, sondern ist auch beschreibbar und kann verwendet werden, um die Länge des Arrays MDN link festzulegen. Dadurch wird das Array verändert.

Wenn das aktuelle Array nicht mehr benötigt wird und Sie sich nicht für die Unveränderlichkeit interessieren oder keinen Speicher zuweisen möchten, d. H. Für ein Spiel, ist dies der schnellste Weg

arr.length = n

ein Array leeren

arr.length = 0
14
Pawel

Versuchen Sie dies nicht mit einer Kartenfunktion. Die Kartenfunktion sollte verwendet werden, um Werte von einer Sache auf eine andere abzubilden. Wenn die Anzahl der Ein- und Ausgänge übereinstimmt.

Verwenden Sie in diesem Fall die Filterfunktion, die auch auf dem Array verfügbar ist. Die Filterfunktion wird verwendet, wenn Sie selektiv Werte übernehmen möchten, die bestimmte Kriterien erfüllen. Dann kannst du deinen Code gerne schreiben

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

Folgendes hat für mich gearbeitet.

array.slice( where_to_start_deleting, array.length )

Hier ist ein Beispiel

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

Sie können mit index des Arrays filtern. 

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

1
Freddy

Mit https://www.npmjs.com/package/manipula können Sie dies nach LINQ-Stil tun:

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