Js two-dimensional array
var arr = [
{ date: "2018-10-31", a: 1, b: 2, c: 3, e: 8 },
{ date: "2018-10-27", a: 3, b: 4, c: 5, e: 7 },
{ date: "2018-10-29", a: 3, b: 4, c: 5, e: 9 },
{ date: "2018-10-30", a: 4, b: 5, c: 6, e: 0 },
{ date: "2018-10-28", a: 7, b: 8, c: 10, e: 1 },
];
//
// :
//
// date
// table t; t = c + e; t = t - b
kindhearted people help to see how to write, feel that the array is so confused!
var arr = [
{ date: '2018-10-31', a: 1, b: 2, c: 3, e: 8 },
{ date: '2018-10-27', a: 3, b: 4, c: 5, e: 7 },
{ date: '2018-10-29', a: 3, b: 4, c: 5, e: 9 },
{ date: '2018-10-30', a: 4, b: 5, c: 6, e: 0 },
{ date: '2018-10-28', a: 7, b: 8, c: 10, e: 1 },
];
//
arr.sort(function(a,b){
return Date.parse(new Date(a.date)) < Date.parse(new Date(b.date))
})
you didn't say what to do with other operations. Don't panic.
probably wrote it down, but didn't check it carefully
const getTimeNum = (dateStr) => {
let dateArr = dateStr.split('-').map((t, i) => {
t = +t;
if (i === 1) t--; // 0 ~ 11
return t;
});
return new Date().setFullYear(...dateArr);
}
//
arr.sort((a, b) => {
return getTimeNum(b.date) - getTimeNum(a.date);
})
// t
let maxNum = 0; //
arr = arr.reduce((prev, cur) => {
for (key in prev[0]) {
if (key != 'date') {
maxNum = Math.max(maxNum, cur[key]);
prev[0][key] += cur[key];
}
}
prev.push({
...cur,
t: prev.length > 1 ? (prev[prev.length - 1].t - cur.b) : (cur.c + cur.e) // t
});
return prev;
}, [{date: '', a: 0, b: 0, c: 0, e: 0}]); // arr[0]
see if it can help you: `var arr = [
]
{ date: '2018-10-31', a: 1, b: 2, c: 3, e: 8 },
{ date: '2018-10-27', a: 3, b: 4, c: 5, e: 7 },
{ date: '2018-10-29', a: 3, b: 4, c: 5, e: 9 },
{ date: '2018-10-30', a: 4, b: 5, c: 6, e: 0 },
{ date: '2018-10-28', a: 7, b: 8, c: 10, e: 1 },
];
let t = 0;
for (var i = 0; I
if (i == 0) {
t = arr[i].c + arr[i].e;
} else {
t = t - arr[i].b;
}
}
console.log (t); `