javascript - 如何映射 JavaScript 数组的 i 和 i+1 值?

标签 javascript arrays reactjs jsx

我想使用 map 来显示 JavaScript map 中的第 i 个值和第 i+1 个值,以在轮播中显示一组两张卡片。

以下是我正在使用的代码,我想对其进行修改以获得所需的结果:

{testimonialContent.map((testimonial, i) => {
  return (
    <Carousel.Item className={classes.carousel_item}>
      <div className={classes.root}>
        <div className={classes.testimonial_card}>
          {testimonial[i]}
        </div>
        {/* Second card */}
        <div className={classes.second_card}>
          {testimonial[i+1]}
        </div>
      </div>
    </Carousel.Item>

如有任何帮助或建议,我们将不胜感激。谢谢。

最佳答案

您可以使用reduce()来组合数据。

注意: (index % 2 === 0) 是您指定 nth 子级的位置(例如:2 in本例)

稍后在您的 render 方法中使用 destructuringmap()中。

const sampleData = ['first', 'second', 'third', 'fourth', 'fifth']

class App extends React.Component {
  render() {
    console.log("rendered");
    
    const edited = [].concat(sampleData).reduce((unique, value, index) => {
      if (index % 2 === 0) {
        return [...unique, [value]];
      }
      unique[unique.length - 1].push(value);
      return unique;
    }, [])
    
    return (
      <div>
        {edited.map(([item1, item2]) => 
          <div className='block'>
            {item1 && <div className='odd'>{item1}</div>}
            {item2 && <div className='even'>{item2}</div>}
          </div>
        )}
      </div>
    );
  }
}

// Render it
ReactDOM.render(
  <App />,
  document.getElementById("react")
);
.block {
  border: 1px solid gray;
}

.odd {
  color: red;
}

.even {
  color: blue;
}
<div id="react"></div>
<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>

关于javascript - 如何映射 JavaScript 数组的 i 和 i+1 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57037270/

相关文章:

javascript - 使用 jQuery 迭代附加项目

javascript - 在django中通过请求获取onclick url

Javascript - 在循环中构建数组

arrays - 使用rust "the trait ` std::array::LengthAtMost3 2` is not implemented"

javascript - 重新渲染次数过多。即使功能正常,react 也会限制渲染次数以防止无限循环

javascript - 使用 react-navigation tabbar tabBarOnPress 转到特定路线

javascript - 在 jQuery 中禁用非事件切换

javascript - 加载完成时模态关闭

c# - String 的 char 值改为 Int

reactjs - 页面正在合并以进行 Reactjs 路由?