Hi , I am developing a timeline feed system using parse cloud. I need to map three different results into one file based on the upload date. The following is the array structure.
var firstArrayFromPromise = [
{"uploadedAt ": date, "data" : {object} },
{"uploadedAt" : date , "data" :{object} }
]
var secondArrayFromPromise = [
{"uploadedAt ": date, "data" : {object} },
{"uploadedAt" : date , "data" :{object} }
]
What's the most efficient approach to achieve this? Any help will be highly appreciated.
Madiba Razak
Solving problems since 2015
You can write your own sort function. Then call sort on your array
Using ES6 style
const compare = (a,b) => {
if (a.uploadedAt < b.uploadedAt)
return -1;
else if (a.uploadedAt > b.uploadedAt)
return 1;
else
return 0;
}
You need to merge your arrays into one array.
const data = firstArrayFromPromise.concat(secondArrayFromPromise)
Our array may looks like this
const data = [
{
uploadedAt: new Date(2016,0,1),
data : 'object1'
},
{
uploadedAt: new Date(2015,0,1),
data : 'object2'
},
{
uploadedAt: new Date(2016,0,1),
data : 'object3'
},
]
Show if it's working
console.log(data.sort(compare))
Simon Ruis
Crazy Noder
How about :
var arrayConcat = firstArrayFromPromise.concat(secondArrayFromPromise).concat(thirdArrayFromPromise); arrayConcat = arrayConcat.sort(function(a,b){ return a.uploadedAt - b.uploadedAt; }); var data = arrayConcat.map(function(item){ return item.data; });