gpt4 book ai didi

elixir - 替换 Elixir 数组中的项目

转载 作者:行者123 更新时间:2023-12-05 08:26:00 25 4
gpt4 key购买 nike

假设我有一张看起来像这样的 map

组织有一个属性数组,属性有一个“access_tokens”数组

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"}]
}
]
}

现在我有了这张 map ,对于一个特定的访问 token ,这个 map 的 ID 与第二个属性的访问 token 之一相匹配:

access_token = %{id: "at-3", name: "new name"}

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

我有一些迂回的方法可以做到这一点,但是在 Elixir 中什么是干净的方法。

最佳答案

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

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

我一直在想,这个语言中最强大的东西之一怎么被低估了。

关于elixir - 替换 Elixir 数组中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58822023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com