gpt4 book ai didi

javascript - 将保存 CSV 数据的数组合并到一个对象数组中

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:24:16 24 4
gpt4 key购买 nike

我受到了这个 post 的影响将 CSV 文件存储在单独的数组中,并且可以正常工作。我希望再添加大约 8 个数组,每个数组都包含一个 CSV 文件的内容。

但是如何将这些数组合并为一个对象数组呢? 拥有一个对象数组对于我后续应用这些数组至关重要。目前我所知道的如下,但我不确定它是否正确?

如有任何帮助,我们将不胜感激。

var dataCSV;
var dataCSV2;

var collection = {dataCSV, dataCSV2};

d3.csv("data/csv1.csv", function(data) {
data.forEach(function(d) {
d.word = d.word;
d.frequency = +d.frequency;
})
dataCSV = data;
console.log(dataCSV);
});

d3.csv("data/csv2.csv", function(data) {
data.forEach(function(d) {
d.word = d.word;
d.frequency = +d.frequency;
})
dataCSV2 = data;
console.log(dataCSV2);
});

function merge(data1, data2) {
collection = {data1, data2};
console.log(collection);
}

merge(dataCSV, dataCSV2);

理想情况下,我希望 collection 的输出是:

collection {
dataCSV {
word: ..., frequency: ...,
word: ..., frequency: ...
},
dataCSV2 {
word: ..., frequency: ...,
word: ..., frequency: ...
}
}

最佳答案

与其重复自己,不如创建一个获取数据、格式化数据并返回 promise 的方法。 .然后使用 Promise.all() 收集几个 promise 的结果.然后您可以将这两个数组收集到一个对象中。

示例(未测试):

const getCsv = (url) => new Promise((resolve) => {
d3.csv(url, function(data) {
data.forEach(function(d) { // you can use a Array.map() instead for a cleaner solution
d.word = d.word;
d.frequency = +d.frequency;
})

resolve(data);
});
});

Promise.all([ // load both csvs, and wait for the results of both
getCsv('data/csv1.csv'),
getCsv('data/csv1.csv')
])
.then(([dataCSV, dataCSV]) => {
const collection = { dataCSV, dataCSV2 };
console.log(collection );
});

关于javascript - 将保存 CSV 数据的数组合并到一个对象数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52314879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com