【发布时间】:2020-03-12 14:56:48
【问题描述】:
或者用另一种方式提出问题:为什么在 Papa.step() 函数期间修剪所有前导和尾随空单元格时,PapaParse 的 ParseResult.data 是一个空数组?编辑:请注意,我可以通过映射解析结果和修剪来实现我想要的,但我不想先解析然后映射,我宁愿一次性完成。
CSV 示例:
Col 1,Col 2,Col 3
1-1,1-2,
,2-2,2-3
3-1,3-2,3-3
请注意,第 1 行包含标题(Col 1、Col 2 等)。第 2 行第 3 列为空,并且 第 3 行第 1 列为空。
鉴于该 CSV,我想将其呈现给用户(作为格式良好的 表):
| | | |
|-----|-----|-----|
| 1-1 | 1-2 | |
| 2-2 | 2-3 | |
| 3-1 | 3-2 | 3-3 |
我想将所有行尽可能向左推,并删除所有空行 每行末尾的单元格。
换句话说,我想从头到尾修剪所有空单元格
每行的末尾。下面是我正在使用的代码。我已经把调试器放在里面
trimEmptyCells,它的表现完全符合预期。但是, ParseResult
parseAndTrim 返回包含一个空的 data 数组。
export const parseAndTrim = (csv: string): Papa.ParseResult => {
return Papa.parse(csv, {
skipEmptyLines: true,
step: trimEmptyCells,
})
};
const trimEmptyCells = (results: Papa.ParseResult) => {
// Note that `_.dropWhile` and `_.dropRightWhile` are [lodash
// functions](https://lodash.com/docs/4.17.15#dropRight).
const leftTrimmed = _.dropWhile(results.data, (r) => r === "");
return _.dropRightWhile(leftTrimmed, (r) => r === "");
};
我的第一个猜测是
PapaParse 遇到长度不同的数组的错误,但是
errors 数组也是空的。所以我测试了我能做的(没有step函数)
在https://www.papaparse.com/demo 使用下面的示例并简单地拥有
missing 单元格(不仅仅是空的)不会引发错误并返回正确的data
数组。
https://www.papaparse.com/demo 的示例测试输入
Col 1,Col 2,Col 3
1-1,1-2
,2-2,2-3
【问题讨论】: