目次
![pexels-photo-1721537.jpeg](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fai4vjpehjr3j%2F5KewjmzoG9mrpphlNDBvpl%2Fc7c83e55b15d3f84a02eefba9748b058%2Fpexels-photo-1721537.jpeg&w=1920&q=75)
monocle-tsでtraverse
![Kazuki Moriyama](/_next/image?url=https%3A%2F%2Fimages.ctfassets.net%2Fai4vjpehjr3j%2F2Oa6QzkYOe51LQiER7VEtN%2F6e819c38a98a1c649401b86861c40d53%2Fimage.png&w=96&q=75)
Kazuki Moriyama (森山 和樹)
type User = {
friendNames: string[];
};
const user = {
friendNames: ["bob", "john"],
};
import { Lens, fromTraversable } from "monocle-ts";
import { array } from "fp-ts/lib/Array";
// Filter and modify the nested array
Lens.fromProp<User>()("friendNames")
.composeTraverse(fromTraversable(array).filter(n => n === "bob"))
.modify(n => n.toUpperCase());
// => { friendNames: ["BOB", "john"]}