首页 > 解决方案 > Javascript - array.map 返回几个数组,为什么?

问题描述

我目前正在尝试解析 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. 删除所有其他数组,但不是最后一个

或者

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

谢谢!:)

标签: javascriptarrayscsvd3.js

解决方案


只需通过pop电话获取最后一个:

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

推荐阅读