2016-10-06 40 views
1

我有一個組件,我想找到對象數組中的索引(現在我有一個硬編碼的對象數組,但後來會正在使用調用來獲取數據)。我想在數組的每個第五個位置添加一個2的mdOffset。我將如何去做這件事?我的代碼:我想映射一個數組,並找到數組中的對象的索引

export default class Winks extends Component { 
    constructor() { 
    super() 
    this.state ={ 
     items: [ 
     { id:1, name: "The Kooples - white top", url:"bloomingdales.com", src: "assets/male.png" }, 
     { id:2, name: "Sandro-Orange Zipper", url:"saksfifth.com", src: "assets/female.png" }, 
     { id:3, name: "Sandro-Orange Zipper", url:"saksfifth.com", src: "assets/female.png" }, 
     { id:4, name: "Sandro-Orange Zipper", url:"saksfifth.com", src: "assets/female.png" }, 
     { id:1, name: "Sandro-Orange Zipper", url:"saksfifth.com", src: "assets/female.png" }, 
     { id:1, name: "The Kooples - dress", url:"bloomingdales.com", src: "assets/male.png" }, 
     { id:1, name: "The Kooples - dress", url:"bloomingdales.com", src: "assets/male.png" }, 
     ] 
    } 
    } 

    render() { 

    var listItems = this.state.items.map.bind(this)(function(item) { 
     if (this.state.items.indexOf(item) % 5 === 0) { 
     var columns = (
      <Col md={2} mdOffset={2}> 
       <img className='img-responsive' src={item.src}></img> 
      <Row> 
       <span>{item.name}</span> 
      </Row> 
      <Row className="pull-right"> 
       <i className="fa fa-heart"></i> 
      </Row> 
      </Col> 
     ) 
     } 

     else { 
     var columns = (
      <Col md={2}> 
       <img className='img-responsive' src={item.src}></img> 
      <Row> 
       <span>{item.name}</span> 
      </Row> 
      <Row className="pull-right"> 
       <i className="fa fa-heart"></i> 
      </Row> 
      </Col> 
     ) 
     } 

     return columns 
    }); 

    return (
     <Row> 
      {listItems} 
     </Row> 
    ) 
    } 
} 

回答

2

當你映射你的元素的索引作爲第二個參數https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map

例:

arr.map(function(item, index) { 
    if (index % 5 === 0) { 
    // do your stuff here 
    } 
}); 

或者

arr.map(function(item, index) { 
    <Col mdOffset={index % 5 === 0 ? 2 : null}> 

    </Col> 
}); 
+0

如果他想每個第五元素這不會因爲索引從0開始而被關閉嗎? '[1,2,3,4,5] .forEach(function(item,index){if(index%5 === 0){console.log(item)}})'唯一將被記錄的項目是0%以來的第一個指數,任何東西都是0,第五個項目的索引是4,因此沒有通過條件 – finalfreq

+0

好的一個是的,我檢查了這個 – EQuimper

+1

我想我可能說錯了,但是Emanual給我工作的是什麼,我基本上希望數組的第6個索引或第5個項目做些什麼。 [1,2,3,4,5,6] .forEach(function(item,index){if(index%5 === 0){console.log(item)}})它吐出0和6哪個是我想要的。連續5個項目,第6個項目開始新行 –

相關問題