我正在使用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} />);
    });

这并没有起作用,因为map没有一个set函数。

你能帮帮我吗?


当前回答

可以使用数组索引进行过滤。

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

其他回答

下面的方法对我很有效。

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

要获取数组的前n个元素,使用

const slicedArray = array.slice(0, n);

我相信你在寻找的是:

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

举个简单的例子:

var letters = ["a", "b", "c", "d"];
var letters_02 = letters.slice(0, 2);
console.log(letters_02)

输出:["a", "b"]

var letters_12 = letters.slice(1, 2);
console.log(letters_12)

输出:[b]

注意:slice只提供一个浅拷贝,不修改原始数组。

用LInQer你可以做到:

Enumerable.from(list).take(3).toArray();