使用另一个函数

时间:2016-07-06 18:26:45

标签: javascript ecmascript-6

我正在尝试使以下代码更漂亮。具体来说,我想使用另一个函数将值传递给map函数。

以下是代码:

...   
      this.props.slides.map((s)=>{
              let id = s.get('id')
              let title = s.get('title')
              let image = s.get('image')
              let alt = s.get('alt')
              let caption = s.get('caption')
              return(

                    <Carousel.Item key={id} >
                    <img width={900} height={500} alt={s.get('alt')} src={image} alt={alt}/>
                    <Carousel.Caption>
                      <h3>{title}</h3>
                      <p>{caption}</p>
                    </Carousel.Caption>
                  </Carousel.Item>

              )
      })       
    }
    </Carousel>)
  }
}

...

所以基本上我需要另一种方法(它是类的所有部分),如:

listSlides(){
...
} 

然后我可以将它传递给我的地图功能。但是,我不确定如何写它。我对map()的工作方式有点困惑。

文档声明第一个参数是一个传递给数组中每个项目的函数但是我不确定为什么这意味着我现在可以做:let id = s.something in my关闭函数?

1 个答案:

答案 0 :(得分:1)

向函数添加一个参数并将其传递给它:

this.props.slides.map(s=>listSlides(s))

更简洁(感谢@Bergi)

this.props.slides.map(listSlides);

功能变为:

function listSlides(s){
    let id = s.get('id')
    // and so on
}