我正试图从mysql查询中重构数据,我花了几天时间想要弄清楚如何做到这一点。mysql数据:
var data = [{rep:'Test1', day: 1 , binder: 500},
{rep:'Test1', day: 2 , binder: 500},{rep:'Test1', day: 3 , binder: 500},
{rep:'Test2', day: 2 , binder: 500},{rep:'Test2', day: 2 , binder: 500},
{rep:'Test1', day: 4 , binder: 500},{rep:'Test1', day: 5 , binder: 500},
{rep:'Test2', day: 4 , binder: 500},{rep:'Test1', day: 5 , binder: 500},
{rep:'Test1', day: 6 , binder: 500},{rep:'Test2', day: 7 , binder: 500}]
转换为datatables的可读对象
var data = {
"data": [
[
"Test1",
"500", // total Binder from monday for Test1
"500", // total Binder from Tuesday for Test1
"500", // total Binder from wednesday for Test1
"500", // total Binder from thursday for Test1
"1000", // total Binder from friday for Test1
"500" // total Binder from saturday for Test1
"500", // total Binder from sunday for Test1
"4000" // sum of all previous
],[
"Test2",
"500", // total Binder from monday for Test2
"500", // total Binder from Tuesday for Test2
"500", // total Binder from wednesday for Test2
"500", // total Binder from thursday for Test2
"1000", // total Binder from friday for Test2
"500" // total Binder from saturday for Test2
"500", // total Binder from sunday for Test2
"4000" // sum of all previous
]
]
}
我的当前函数是
const transformObj = (repKey) => {
const days = [
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"
];
let obj = {};
const filteredDatasets = data.filter(
(d) => d.rep.toLowerCase() === repKey.toLowerCase()
);
const total = filteredDatasets.reduce(
(prevValue, currDataset) => prevValue + currDataset.binder,
0
);
filteredDatasets.forEach((dataset) => {
obj = { ...obj, rep: dataset.rep, [days[dataset.day - 1]]: dataset.binder };
});
obj.total = total;
return obj;
};
返回
{ rep: "jeff", Tuesday: 1500, total: 1500 }
我不知道如何做到这一点,我正在尝试自学js
输入数据、期望的输出和您的代码之间似乎没有什么一致性。如果我仅仅依赖于输入数据和所需输出的形状,我将建议您首先创建一个由rep
值键控的映射,并将所需数组结构与其相关联的过程。
然后通过对数据进行迭代来填充这些数组。
最后提取那些数组来构建最终的数据结构:
null
let data = [{rep:'Jeff', day: 1 , binder: 500},{rep:'Test1', day: 2 , binder: 500},{rep:'Test1', day: 3 , binder: 500},{rep:'Test2', day: 2 , binder: 500},{rep:'Test2', day: 2 , binder: 500},{rep:'Test1', day: 4 , binder: 500},{rep:'Test1', day: 5 , binder: 500},{rep:'Test2', day: 4 , binder: 500},{rep:'Test1', day: 5 , binder: 500},{rep:'Test1', day: 6 , binder: 500},{rep:'Test2', day: 7 , binder: 500}];
let reps = new Map(data.map(({rep}) => [rep, [rep, 0, 0, 0, 0, 0, 0, 0, 0]]));
for (let {rep, day, binder} of data) {
let arr = reps.get(rep);
arr[8] += arr[day] = binder;
}
let result = { data: [...reps.values()] };
console.log(result);
问题内容: 我希望将值设置为如果我提交的表单中的文本框未放入任何内容。我怎样才能做到这一点?我尝试插入,但这只是将单词添加到字段中。 我不确定应该为此提供什么代码,我只是在编写UPDATE查询。 问题答案: 不要在更新语句中加引号。这应该工作:
问题内容: 我有一个bash.sh脚本: 其中config.json: 当我运行它时,我得到: ERR未知命令’}’ 如何从json文件正确设置json值? 问题答案: 如果你正在尝试设置 字符串 的值,关键看你的JSON文件的内容(或其他任何与此有关的,包括二进制),最简单的方法是使用选项来 阅读的最后一个参数 逐字的命令, 从。例如: 对于您的示例,它将存储: 要存储JSON数据的紧凑表示形式
这是我的代码。我需要在x和y轴刻度中将初始值设置为“0”。我尝试了最新的版本刻度选项。
我使用的是log4j1。2.17和apache-extras-log4j--1.2。17.jar用于日志记录。 我的目的是根据大小对文件进行滚动和归档。下面是log4j。xml ${LOG_FILESIZE_LIMIT}是100MB。 但它没有将MaxFileSize设置为100MB,并给出以下消息。 log4j:警告无法将属性[maxFileSize]设置为值“100MB” 它采用默认的maxf
问题内容: 如何在SQL表中将所有0值都设置为NULL? 提前致谢。 问题答案:
我有两个30m x 30m光栅文件,我想从中采样点。在采样之前,我想从图像中去除云层。我转向R和Hijman的光栅包来完成这项任务。 我使用绘图Poly(sp=TRUE)命令,绘制了18个不同的多边形。该函数似乎不允许18个多边形作为一个sp对象,所以我将它们全部分开绘制。然后,我给多边形一个与光栅匹配的投影4string,并将它们设置为列表。我通过lApplication函数运行列表以将它们转换