【发布时间】:2011-12-29 22:03:32
【问题描述】:
我正在开发一个可以比较两个 .csv 文件的程序。从一个 csv 文件中提取相关数据到一个数组数组中后,我需要合并相关条目。比如我想转这个数组:
[["11/13/15", ["4001", "1392"], "INBOUND"],
["11/13/15", ["4090", "540"], "INBOUND"],
["11/13/15", ["1139", "162"], "INBOUND"],
["11/13/15", ["1158", "64"], "INBOUND"],
["11/13/15", ["4055", "352"], "OUTBOUND"],
["11/13/15", ["4055", "448"], "OUTBOUND"],
["11/13/15", ["4055", "352"], "OUTBOUND"],
["11/13/15", ["1139", "162"], "OUTBOUND"],
["11/13/15", ["1158", "64"], "OUTBOUND"],
["11/13/15", ["4091", "520"], "OUTBOUND"]]
进入这个:
[["11/13/15", ["4001", "1392"], "INBOUND"],
["11/13/15", ["4090", "540"], "INBOUND"],
["11/13/15", ["1139", "162"], "INBOUND"],
["11/13/15", ["1158", "64"], "INBOUND"],
["11/13/15", ["4055", "1152"], "OUTBOUND"],
["11/13/15", ["1139", "162"], "OUTBOUND"],
["11/13/15", ["1158", "64"], "OUTBOUND"],
["11/13/15", ["4091", "520"], "OUTBOUND"]]
对于数组的某些元素,如果它在[0]、[1][0] 和[2] 的项与另一个元素匹配,则创建一个新项(数组),其在[1][1] 的项为总和[1][1] 的所有项目并删除旧数组。如果更简单,我可以更改提取相关数据的方式,使[1] 处的项目不是数组,并且每行有 4 个项目而不是 3 个。
【问题讨论】:
-
那些元素是连续的吗?
-
数据将被排序,以便在打印时看起来像顶部数组,所以是的(如果我理解你的问题)。
-
假设 tokland 的答案确实是您想要的,那么您的问题在结果数组的
[4][1][1]处的值有错字,这是唯一的关键值。应该是 1152,而不是 1115。我必须说你的问题很草率。 -
@sawa 没有注意到那个错字。也感谢您帮助澄清我的句子。