鉴于lodash地图,如何限制结果的数量或切片?

时间:2018-03-23 17:45:40

标签: javascript reactjs lodash

我有以下内容:

import itemsMap from '../libs/items-map';
const _ = require('lodash');
const options = {};

_.map(itemsMap, (item, key) => {
  options[key] = key;
});
然后我在React中输出如下:

  {
    _.map(itemsMap, (item, key) => (
        {key}
      />
    ))
  }

这个目前输出的是整个项目列表,我想只输出5个..我厌倦了使用这样的切片:

  {
    _.map(itemsMap.slice(2), (item, key) => (
        {key}
      />
    ))
  }

这会导致TypeError:.default.slice is not a function

如何限制结果?

1 个答案:

答案 0 :(得分:1)

无论加载器/捆绑器解析您的import是什么,都不会将itemsMap暴露为数组。您可能需要使用require语法,如下面的2行。

此外,由于return语句中的key用大括号括起但没有jsx标记,因此它被解析为一个对象并且不呈现任何内容。当您移除<span>周围的{key}时,请查看this codepen上发生的情况。

对于您的原始问题,限制lodash项目的惯用方法是使用lodash.take,如下所示:

_.map(_.take(itemsMap, 2), (item, key) => ( … ))