前言:
现时朋友们对“js嵌套数组修改”都比较关切,你们都想要了解一些“js嵌套数组修改”的相关资讯。那么小编在网络上网罗了一些对于“js嵌套数组修改””的相关资讯,希望朋友们能喜欢,小伙伴们快快来学习一下吧!第三章 字典
3.5 字典嵌套数组
字典的条目可以是一个数值,也可以是一个数组。用数组来做字典的条目,可以极大地提升字典的使用空间,让报表处理变得更便捷。现在例举一个小程序来说明字典条目使用数组的方法。
小程序:
把左边的表格进行分类汇总,然后输出到E列,形成右边的表格。
一班
15
A
一班
70
A
一班
20
A
二班
109
B
一班
35
A
三班
183
C
二班
44
B
四班
267
D
二班
28
B
五班
276
E
二班
37
B
六班
289
F
三班
66
C
三班
18
C
三班
99
C
四班
88
D
四班
89
D
四班
90
D
五班
91
E
五班
92
E
五班
93
E
六班
94
F
六班
95
F
六班
100
F
Sub 字典嵌套数组()
Dim d As New Dictionary
arr = Range("a1").CurrentRegion
For i = 1 To UBound(arr)
If d.Exists(arr(i, 1)) Then
d(arr(i, 1)) = Array(arr(i, 1), arr(i, 2) + d(arr(i, 1))(1), arr(i, 3))
tm = d(arr(i, 1))
Else
d.Add arr(i, 1), Array(arr(i, 1), arr(i, 2), arr(i, 3))
tm = d(arr(i, 1))
End If
Next
[e1].resize(d.Count, 3) = Application.Transpose(Application.Transpose(d.Items))
End Sub
把数组作为字典的条目,会让字典的条目形成一个从0开始的嵌套数组。小程序里的tm = d(arr(i, 1))语句没有实际执行功能,仅用于在程序执行时可以更直观的看到字典条目的结构,该结构如下图所示:
这个程序最关键的一句就是d(arr(i, 1)) = Array(arr(i, 1), arr(i, 2) + d(arr(i, 1))(1), arr(i, 3)),对于已经写入字典的键值,修改它的条目第二项为arr(i, 2) + d(arr(i, 1))(1),即循环到的数值加上该键对应的已合计的数值。因为嵌套数组从0开始,所以已合计的数值为d(arr(i, 1))(1),对应上图的tm(1)。
往期精彩回顾:
学习VBA,报表做到飞 第三章 字典 3.4 去除重复项与分类汇总
学习VBA,报表做到飞 第三章 字典 3.3 字典的属性
学习VBA,报表做到飞 第三章 字典 3.2 字典的方法
我是云飞扬,职场财会人员,愿与大家分享表格制作和数据统计分析的技巧与方法,希望大家的工作更便捷,更轻松!
标签: #js嵌套数组修改