Cycle an array using ES2015
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.