Incrementing function in an array Incrementing function in an array reactjs reactjs

Incrementing function in an array


clicks was more of an index than it was a clicks counter, so I renamed it to index.

You can use regular expressions with String#split, so you can combine .replace(/\ \ /g,' ').split(' ') into .split(/\s+/).

I moved the index increment statement into the increment function for simplicity, and added a check to increment the index again if the value is not a number.

let index = 2;class App extends React.Component {    state = {        data: 'M 175 0  L 326.55444566227675 87.50000000000001  L 326.55444566227675 262.5  L 175 350  L 23.445554337723223 262.5  L 23.44555433772325 87.49999999999999 L 175 0'    };    onClick() {      this.setState({data: this.increment()});     }    increment() {      const data = this.state.data.split(/\s+/);      if(!(++index % 3)) ++index;      if(index % data.length < 3) index = index + (index % data.length) + 2;      return data.map((e, i) => i === index % data.length? parseInt(e) + 5 : e ).join(' ');    }        render() {      return (        <div>           <div>{this.state.data} </div>            <button onClick={this.onClick.bind(this)} style={{fontSize:20}}> Click me </button>          </div>      )    }}ReactDOM.render(<App />,  document.querySelector('.container'));
<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><section class="container"></section>