Use With Arrays
Lenses are great for arrays too! (2 min. read)
What we just learned applies to arrays as well, but with one change. Instead of lensProp use lensIndex.
import { lensIndex, view } from 'ramda';
const person = {
firstName: 'Bobo',
lastName: 'Flakes',
friends: [{
firstName: 'Clark',
lastName: 'Kent'
}, {
firstName: 'Bruce',
lastName: 'Wayne'
}, {
firstName: 'Barry',
lastName: 'Allen'
}]
};
const getThirdFriend = lensIndex(2);
const result = view(getThirdFriend, person.friends);
console.log({ result });
//{ result: { firstName: 'Barry', lastName: 'Allen' } }
https://ramdajs.com/docs/#lensIndex
Returns a lens whose focus is the specified index.
See also view, set, over, nth.
const headLens = R.lensIndex(0);
R.view(headLens, ['a', 'b', 'c']); //=> 'a'
R.set(headLens, 'x', ['a', 'b', 'c']); //=> ['x', 'b', 'c']
R.over(headLens, R.toUpper, ['a', 'b', 'c']); //=> ['A', 'b', 'c']