Reputation: 415
Here's the code:
list.component.ts
const data1 = [
{
dateStart: "2020-02-14 00:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 14:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server1'
}
];
const data2 = [
{
dateStart: "2020-02-13 14:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-12 11:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-11 11:00:01",
name: 'Server2'
},
]
const arr = new Array();
arr.push(data1, data2);
arr.forEach(server => {
const rec = orderBy(server, ['dateStart'], ['desc']);
console.log(rec);
});
}
What I want is if the data1 have an array(16) then the data2 have an array(20) and both them have the same date but the data2 have oldest data that shouldn't display.
output should be like this:
[
{
dateStart: "2020-02-14 00:00:01",
name: "Server1"
},
{
dateStart: "2020-02-13 14:00:01",
name: "Server1"
},
{
dateStart: "2020-02-13 13:00:01",
name: "Server1"
},
{
dateStart: "2020-02-13 12:00:01",
name: "Server1"
},
{
dateStart: "2020-02-13 11:00:01",
name: "Server1"
}
],
[
{
dateStart: "2020-02-13 14:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server2'
}
]
here's the code: https://stackblitz.com/edit/angular-akhhbp
if there's a new array. which is the data3 and it has an array(25) then it will compare each other. like data1, data2 and data3 if there date doesn't match it will not display.
example:
data1 = [{
dateStart: "2020-02-13 14:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server1'
}]
data2 = [ {
dateStart: "2020-02-13 14:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-12 11:00:01",
name: 'Server2'
}],
data3 = [ {
dateStart: "2020-02-13 14:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 13:12:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-12 10:00:01",
name: 'Server3'
}]
the output should be.
[{
dateStart: "2020-02-13 14:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server1'
}],
[ {
dateStart: "2020-02-13 14:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server2'
}],
[ {
dateStart: "2020-02-13 14:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 13:12:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server3'
},
{
dateStart: "2020-02-12 10:00:01",
name: 'Server3'
}]
Upvotes: 2
Views: 157
Reputation: 173
I will put up the solution this way -
array.sort()
for it.data1
in a new array, and save the last record for this array in temp variable. let temp = data1[data1.length -1].dateStart
. Because you don't need data from other arrays older than this date.data2, data3, ...
and push the data in a new array if the dateStart
is not older than temp
. Upvotes: 2
Reputation: 955
if you want to save your data like this all you need is using spread operator (...)
like so :
const data1 = [
{
dateStart: "2020-02-14 00:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 14:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server1'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server1'
}
];
const data2 = [
{
dateStart: "2020-02-13 14:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 13:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 12:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-13 11:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-12 11:00:01",
name: 'Server2'
},
{
dateStart: "2020-02-11 11:00:01",
name: 'Server2'
},
]
let final = [[...data1] , [...data2] , ... more arrays];
and the output is :
[ [ { dateStart: '2020-02-14 00:00:01', name: 'Server1' },
{ dateStart: '2020-02-13 14:00:01', name: 'Server1' },
{ dateStart: '2020-02-13 13:00:01', name: 'Server1' },
{ dateStart: '2020-02-13 12:00:01', name: 'Server1' },
{ dateStart: '2020-02-13 11:00:01', name: 'Server1' } ],
[ { dateStart: '2020-02-13 14:00:01', name: 'Server2' },
{ dateStart: '2020-02-13 13:00:01', name: 'Server2' },
{ dateStart: '2020-02-13 12:00:01', name: 'Server2' },
{ dateStart: '2020-02-13 11:00:01', name: 'Server2' },
{ dateStart: '2020-02-12 11:00:01', name: 'Server2' },
{ dateStart: '2020-02-11 11:00:01', name: 'Server2' } ] ]
Upvotes: 0