Как получить первое N количество элементов из массива

Я работаю с Javascript (ES6)/FaceBook и пытаюсь получить первые 3 элемента массива, которые различаются по размеру. Я бы хотел сделать эквивалент Linq take (n).

В моем файле Jsx у меня есть следующее:

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

Затем, чтобы получить первые 3 элемента, я попробовал

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

Это не сработало, так как у карты нет заданной функции.

Можете ли вы помочь?

Ответ 1

Я считаю, что вы ищете:

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

Ответ 2

Чтобы получить первые n элементы массива, используйте

array.slice(0, n);

Ответ 3

Это может быть удивительно, но свойство length массива используется не только для получения количества элементов массива, но также доступно для записи и может использоваться для установки MDN-ссылки на длину массива. Это изменит массив.

Если текущий массив больше не нужен, и вы не заботитесь об неизменности или не хотите выделять память, то есть для игры самый быстрый способ

arr.length = n

очистить массив

arr.length = 0

Ответ 4

Не пытайтесь делать это с помощью функции карты. Функция карты должна использоваться для сопоставления значений от одной вещи к другой. Когда количество входных и выходных данных соответствует.

В этом случае используйте функцию фильтра, которая также доступна в массиве. Функция фильтра используется, когда вы хотите выборочно принимать значения, обрабатывающие определенные критерии. Затем вы можете написать свой код, например

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

Ответ 5

Следующее сработало для меня.

array.slice( where_to_start_deleting, array.length )

Вот пример

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.slice(2, fruits.length);
//Banana,Orange  ->These first two we get as resultant

Ответ 6

Вы можете фильтровать, используя index массива.

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