lua - 在 LUA 中对嵌套表项进行操作
问题描述
如何使用 LUA 添加嵌套表中的某些值。
假设对于列表中未确定数量的项目,我希望将所有“计数”值添加到一个变量中。
在以下只有 2 个项目的示例中,期望的结果是具有一个值为“5”的变量,因为它分别添加了来自“master”和“data”项目的“count:3”和 count:2”值.
spec:
nodeSets:
- config:
node.store.allow_mmap: true
count: 3
name: master
podTemplate:
metadata:
annotations:
sidecar.istio.io/inject: "false"
- config:
node.store.allow_mmap: true
count: 2
name: data
podTemplate:
metadata:
annotations:
sidecar.istio.io/inject: "false"
解决方案
要访问count
每个配置中的值,您不一定需要遍历嵌套结构,这需要多个嵌套的 for 循环。想一个像这样的结构
letters = {
a = {1, 2, 3, 4, 5},
b = {6, 7, 8, 9, 10},
c = {11, 12, 13, 14, 15},
}
在这里,我们需要 2 个 for 循环,一个用于检索字母中的项目,一个用于检索这些项目中包含的所有嵌套项。
您的问题的解决方案只需 1 个循环即可完成。我们只需要遍历表nodeSets
并索引存储在该表中的每个值的计数。
local sum = 0;
for _,node in pairs(obj.spec.nodeSets) do
sum = sum + node.count
end
推荐阅读
- python - 出现错误:形状未对齐,带有 statsmodels 和简单的二维线性回归
- matlab - 绘制多个案例的 Newton-Raphson 解的结果
- reactjs - 反应原生使用状态
- java - Playstore 漏洞 HostnameVerifier 接口的不安全实现
- xml - 如何限制通过 DTD 放入元素中的字符数?
- redis - 为什么 haproxy 显示 2 个 redis 节点关闭,即使这些节点是连接到 redis 主节点的 redis 从节点?
- flutter - 使用 File Picker 在 Flutter 中将 PlatformFile 制作成 File
- google-sheets - 嵌套在数组中的动态查询公式
- r - 如何加快我的 Rcpp 代码,它只执行简单的操作?
- flutter - 如何使此代码在颤动中响应