【发布时间】:2019-07-31 06:08:09
【问题描述】:
我用 ruby 构建了一个小程序,它从我自己的 PDF 银行对账单中收集表格数据。这是通过扫描每个 PDF 语句中的表格然后过滤掉交易行项目模式来实现的。
一切都很好,我已经设法收集了一个行项目数组作为字符串数组的数组。获取一个键控对象数组会更好,但语句格式有点棘手。
问题在于订单项的长度不同,因此始终知道要映射的正确值的位置有点棘手。
例如:
["Transaction 1", "1.00"]["Transaction 2", "Hello World", "3.00"]["Transaction 3", "Hello World", "feeffe", "5.00"]["Transaction 4", "Hello World", "feeffe", "5.00", "12.00"]["Transaction 5", "Hello World @ 10.00", "feeffe", "10.00", "12.00"]
订单项通常仅在 2 到 5 个数组项之间。
是否有一种有效/准确的方法可以将上述内容映射到:
{ description: "Transaction 1", amt: "1.00"}{ description: "Transaction 2 - Hello World", amt: "3.00"}{ description: "Transaction 3 - Hello World - feeffe", amt: "5.00"}{ description: "Transaction 4 - Hello World - feeffe", amt: "5.00"}{ description: "Transaction 5 - Hello World @ 10.00 - feeffe", amt: "10.00"}
-或者是编写查看数组长度并做出“最佳猜测”努力的 IF 条件的唯一方法?
【问题讨论】:
-
您是否得到长度为 4 的行数组,其中包含实际值和费用值?或者这两个值只存在于长度为 5 的数组中。
-
自从我和其他人发布了他们的答案后,您大大改变了问题。这是 SO 的禁忌,原因应该很明显。
-
我只添加了 2 个示例 @CarySwoveland。没有改变问题。
-
#4 和#5 的最后一个元素将被忽略。 #1、#2 或 #3 的情况并非如此。如果您没有更改问题,为什么我的答案对#1、#2 和#3 给出了正确的结果,但对#4 和#5 却没有?为什么@ray 觉得需要他的“更新”?
标签: ruby-on-rails arrays ruby data-science