当前位置: 首页 > 面试题库 >

是否可以仅映射数组的一部分?(Array.map())

范兴文
2023-03-14
问题内容

我正在使用React.js作为前端框架来构建一个项目。在一个特定页面上,我正在向用户显示完整的数据集。我有一个包含完整数据集的数组。它是JSON对象的数组。在向用户呈现此数据方面,我目前通过使用Array.map()返回每一项数据来显示整个数据集。

这是朝着正确方向迈出的一步,但是现在我只需要显示数据集的一部分,而不是全部,我还需要一些控件来了解已显示的总数据集的数量,并且有多少数据集尚未显示。基本上,我正在构建类似“查看更多”按钮的东西,该按钮将更多数据项加载到用户。

这就是我现在使用的内容,其中“ feed”表示我的JSON对象数组。(这将显示整个数据集。)

 return (
  <div className={feedClass}>
  {
    feed.map((item, index) => {
      return <FeedItem key={index} data={item}/>
    })
  }
  </div>
);

我想知道是否有可能仅在数组的一部分上使用.map()而不必事先拆分数组?我知道一个可能的解决方案是保存完整的数据集,然后将其拆分为多个部分,然后对这些部分进行.map(),但是有一种方法可以对数组的一部分进行.map()而不必中断起来吗?

任何和所有反馈表示赞赏。谢谢!


问题答案:

在映射步骤中,请勿尝试通过破解来解决此问题。

而是,在映射之前slice()首先将列表的长度正确设置为:

class Feed extends React.Component {

  constructor(props) {

    super(props)



    this.handleShowMore = this.handleShowMore.bind(this)



    this.state = {

      items: ['Item A', 'Item B', 'Item C', 'Item D'],

      showItems: 2

    }

  }



  handleShowMore() {

    this.setState({

      showItems:

        this.state.showItems >= this.state.items.length ?

          this.state.showItems : this.state.showItems + 1

    })

  }



  render() {

    const items = this.state.items.slice(0, this.state.showItems).map(

      (item) => <div>{item}</div>

    )



    return (

      <div>

        {items}

        <button onClick={this.handleShowMore}>

          Show more!

        </button>

      </div>

    )

  }

}



ReactDOM.render(

  <Feed />,

  document.getElementById('root')

)


<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>



<div id='root'></div>


 类似资料:
  • 问题内容: 我用np.save()保存了几个numpy数组,并将它们放在一起非常大。 是否可以将它们全部加载为内存映射文件,然后对它们进行串联和切片,而无需将任何内容都加载到内存中? 问题答案: 使用显然将数组加载到内存中。为避免这种情况,您可以轻松地在新文件中创建一个thrid数组,并从要连接的数组中读取值。以更有效的方式,您还可以将新阵列追加到磁盘上已存在的文件中。 在任何情况下,您都必须为数

  • 给定一些数组数和一个正整数k,确定是否可能将这个数组分成k个连续数组。 示例: 自[1,2],[3,4]后输出为真

  • 在中可以实现这样的功能吗 注意这里A是部分着色的。 我知道光凭类是不可能的。(文本显示在) 要实现这一点,有什么解决方案可以单独使用Swing或必须使用CSS? 编辑: 如果这是不可能的摆动,任何解决方案与以下标签?

  • 我有一个JavaFX TableView,它有两列。此表使用观察列表作为其模型。 我想将其中一个设置为可编辑,另一个设置为不可编辑。 首先,我尝试了FXML方法: 但这不管用。表格始终不可编辑。 我还尝试了java方式: 但这也不管用。所有的桌子都不能修改。 如果TableColumn有一个可编辑的属性,那么它应该可以单独设置。 如果你知道我哪里做错了,请帮帮我。谢谢。 PS:measureNum

  • 从这个问题,有可能注入map与枚举? 例如,我有枚举: 我有一些与实现的接口: 但这样的注入不起作用: 我想自动注入。如何修复它,在spring框架端生成这样的代码?

  • 鉴于这些实体和存储库可以访问DDBB中的数据: 我想为方法getTotalPurchaseAmounts(长customerId)添加缓存,这样,当为客户添加一些购买时,只有该客户的purchasesd被逐出。 相关的依赖项是: 相关配置: 由于spring缓存(和ehcache)逐出的次数受元素或所有条目的限制,我开发的解决方案是通过友好方式创建缓存(每个客户一个),这样我就可以逐出这些缓存。