javascript - 如何在 react 中映射索引范围?

标签 javascript arrays reactjs

<table>
   <tbody>
   {this.state.data.map((person, i) => <TableRow key = {i} data = {person} />)}
   </tbody>
</table>

这映射了我的整个数组,但我如何从最小索引映射到最大索引?所以说我的数组有 500 个元素。我想将这个(数据)数组从索引 15 映射到 24(含)。 (所以我的屏幕上只有 10 个元素)。

编辑:这些答案很有趣..但是没有提到 .filter() 吗?我看到它可能对我想要的有所帮助,但我正试图弄清楚如何在 react 中做到这一点。

最佳答案

使用Array#slice()this.state.data 中提取所需值的浅拷贝。

const SubsetTable = props => {
  let {startIndex, endIndex, data} = props

  let subset = data.slice(startIndex, endIndex)

  return (
   <table>
     <tbody>
       {subset.map((person, i) => (<TableRow key = {i} data = {person} />)}
     </tbody>
   </table>
  )
}

// Since splice() is inclusive of the range given, you'll need to 
// adjust your range to include that last index if needed
// The below will grab all values in indexes 15-24, 
<SubsetTable startIndex={15} endIndex={25} data={this.state.data} />

由于您更新了关于使用 Array#filter() 的问题, filter() 要求您遍历整个集合。 Array#slice() 只会提取您想要提取的连续索引范围。 filter() 在您给出希望所有 Array 数据成员都满足并且您的集合是无序的条件时会更好。

关于javascript - 如何在 react 中映射索引范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48652067/

相关文章:

javascript - 如何确保指令的链接函数在 Controller 之前运行?

javascript - onsubmit 返回确认转到 url

java - 文件 IO,使用 for-each 循环从文件数组读取(: ) in java

javascript - 如何使用新的 React Hooks 将函数作为 prop 传递

node.js - npm start 出现问题(错误 : spawn cmd ENOENT)

javascript - 使用 Javascript 替换整个页面,包括头部

javascript - 有没有办法在以下上下文中伪造 React JS 中的循环动画?

c - 使用 TYPE 进行元素分配时遇到问题

javascript - 将数组值从 html 传递到 javascript

javascript - 如何防止最后一个刻度渲染?使用 'recharts' 库