ES2015 is fun and allows you to write more concise Javascript.

Here’s how to cycle an array of values. Use it to zebra stripe a table or whatever:

function cycle (...args) {
  return (i) => args[i % args.length]
}

And we can still make it shorter:

const cycle = (...args) => (i) => args[i % args.length]

Use it in React like this:

function Table ({ posts }) {
  const cls = cycle('odd', 'even')

  return <table>
    {posts.map((post, i) => (
      <tr key={i} className={cls(i)}>
        <td>{post.title}</td>
      </tr>
    ))}
  </table>
}

Compare it to regular ES5:

function cycle () {
  var args = Array.prototype.slice.call(arguments)

  return function (i) {
    return args[i % args.length]
  }
}

Not that much longer but definitely less fun. We can have fun.