首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >替换“灵丹妙药”数组中的项

替换“灵丹妙药”数组中的项
EN

Stack Overflow用户
提问于 2019-11-12 15:42:48
回答 1查看 1.5K关注 0票数 2

假设我有一张像这样的地图

一个组织有一个属性数组,属性有一个"access_tokens“数组。

代码语言:javascript
复制
organization = %{
  name: "Org",
  properties: [
    %{
      name: "prop1",
      access_tokens: [%{id: "at-1", name: "one-1"}, %{id: "at-2", name: "one-2"}]
    },
    %{
      name: "prop2",
      access_tokens: [%{id: "at-3", name: "two-1"}, %{id: "at-4", name: "two-2"}]
    }
  ]
}

现在我有了这个映射,对于一个特定的访问令牌,这个id与第二个属性的一个访问令牌匹配:

代码语言:javascript
复制
access_token = %{id: "at-3", name: "new name"}

使用新的访问令牌迭代更新organization%{}映射的最佳方法是什么?我想要做的是找到基于id的访问令牌,并将其替换为具有新名称的新令牌。

我有一些周全的方法来做这件事,但是在长生不老药中,有什么方法可以做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-12 16:04:14

您不需要迭代,只需使用AccessAccess.filter/1Access.all/0

代码语言:javascript
复制
put_in(
  organization,
  [:properties,
   Access.all(),
   :access_tokens,
   Access.filter(&match?(%{id: "at-3"}, &1)),
   :name],
  "new_name")

我一直在想,语言中最强大的东西之一怎么会被低估呢?

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58822023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档