gpt4 book ai didi

javascript - 将 javascript 对象合并为 csv 格式

转载 作者:行者123 更新时间:2023-12-02 23:03:56 35 4
gpt4 key购买 nike

我试图通过组合四个不同的数据集(data1、data2、data3、data4)来获得如下所示的输出(预期输出),其中所有要组合的名称和要添加的值。

var 
data1 = [{name:"js",value:"20"}],
data2=[{name:"c#",value:10}],
data3=[{name:"ds",value:30}],
data4 = [{name:"java",value:10},{name:"c",value:40}]

预期输出

output = "js-c#-ds-java,70\n\
js-c#-ds-c,100\n"

最佳答案

如果你想要如此奇怪的输入,那么像这样:

var 
data1 = [{name:"js",value:"20"}],
data2=[{name:"c#",value:10}],
data3=[{name:"ds",value:30}],
data4 = [{name:"java",value:10},{name:"c",value:40}]

var item, nameStack = [], sums={}, output = "";
var i=1;
while(item = window["data" + i++]) {
var dashName = nameStack.join('-'), val;
if (dashName) {
val = sums[dashName];
} else val = 0;
for(var j in item) {
var dashName2;
nameStack.push(item[j].name);
dashName2 = nameStack.join('-');
sums[dashName2] = val + parseInt(item[j].value);
if(item.length > 1) nameStack.pop();
}
delete sums[dashName];
}
console.log(JSON.stringify(sums))
for(item in sums) {
output += item + "," + sums[item] + "\n"
}
console.log(output)

或者如果您有像这样更简单的数组输入:

var 
data = [[{name:"js",value:"20"}],
[{name:"c#",value:10}],
[{name:"ds",value:30}],
[{name:"java",value:10},{name:"c",value:40}]];

var item, nameStack = [], sums={}, output = "";
var i=1;
for(item in data) {
item = data[item];
var dashName = nameStack.join('-'), val;
if (dashName) {
val = sums[dashName];
} else val = 0;
for(var j in item) {
var dashName2;
nameStack.push(item[j].name);
dashName2 = nameStack.join('-');
sums[dashName2] = val + parseInt(item[j].value);
if(item.length > 1) nameStack.pop();
}
delete sums[dashName];
}
console.log(JSON.stringify(sums))
for(item in sums) {
output += item + "," + sums[item] + "\n"
}
console.log(output)

介意投票下方的接受按钮,以防万一。

关于javascript - 将 javascript 对象合并为 csv 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57675036/

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