Javascript-array.map返回几个数组,为什么?

时间:2019-04-19 06:09:02

标签: javascript arrays csv d3.js

我当前正在尝试解析CSV文件。

csv文件的格式:(仅作为示例,因为我无法显示数据)

我使用了脚本d3。

我的代码当前如下所示:(它读取csv数据并将其安排到我的需要中。)

var myArray = []

d3.csv("Data.csv", function(data){
    myArray.push(data)
    const uniqueKeys = [...new Set(...myArray.map(i => Object.keys(i)))];

const res = uniqueKeys.map(k => {
    return [k, ...myArray.map(i => i[k]).filter(i => i !== null && i !== undefined)];
});
console.log(res);

我需要一个像这样的数组:

[[Header1,A1,B1,C1,D1,E1,F1],[Header2,A2,B2,C2,D2,E2],[Header3,A3,B3,C3,D3,E3]...]

现在我得到了我需要的数组,但问题是,脚本以某种方式输出了几个数组:

我只需要最后一个,因为这是完整的。由于某些原因,其他阵列不完整。 (您可以看到其中包含的元素更少??)

我需要:

  1. 删除所有其他数组,但不删除最后一个

OR

  1. 编辑仅输出完整(最后一个)的代码

谢谢! :)

1 个答案:

答案 0 :(得分:0)

只需通过pop次调用即可获取最后一个:

const res = uniqueKeys.map(k => {
    return [k, ...myArray.map(i => i[k]).filter(i => i !== null && i !== undefined)];
}).pop().pop();