I want to sort 3 dimensional array in javascript -


i post question php want javascript

my array following :

var inboxmessages = {     105775: { //index thread_id         0: {             'id': 85,             'thread_id': 105775,             'message': "hello",             'created_at': "may 20, 2015",             'datetime': 1432118191,             'sender_id': 13,         },         1: {             'id': 70,             'thread_id': 105775,             'message': "hii",             'created_at': "may 19, 2015",             'datetime': 1432021227,             'sender_id': 13,         }     },     224199: { //index thread_id         0: {             'id': 88,             'thread_id': 224199,             'message': "yessss...",             'created_at': "may 20, 2015",             'datetime': 1432306513,             'sender_id': 14,         },         1: {             'id': 75,             'thread_id': 224199,             'message': "hellowwww...",             'created_at': "may 19, 2015",             'datetime': 1432021227,             'sender_id': 14,         }     },     107917: { //index thread_id         0: {             'id': 56,             'thread_id': 107917,             'message': "how r u??",             'created_at': "may 16, 2015",             'datetime': 1431792155,             'sender_id': 14,         },         1: {             'id': 30,             'thread_id': 107917,             'message': "hi.. m fine.",             'created_at': "may 6, 2015",             'datetime': 1430920006,             'sender_id': 14,         },         2: {             'id': 30,             'thread_id': 107917,             'message': "hi!!!!..how r u??",             'created_at': "may 6, 2015",             'datetime': 1430920006,             'sender_id': 14,         }     },     378552: { //index thread_id         0: {             'id': 108,             'thread_id': 378552,             'message': "hi",             'created_at': "may 29, 2015",             'datetime': 1432906923,             'sender_id': 14,         },         1: {             'id': 107,             'thread_id': 378552,             'message': "hi.",             'created_at': "may 29, 2015",             'datetime': 1432903194,             'sender_id': 14,         }     }  }; 

so need output :

var inboxmessages = {     378552: {//index thread_id         0: {             'id': 108,             'thread_id': 378552,             'message': "hi",             'created_at': "may 29, 2015",             'datetime': 1432906923,             'sender_id': 14,         },         1: {             'id': 107,             'thread_id': 378552,             'message': "hi.",             'created_at': "may 29, 2015",             'datetime': 1432903194,             'sender_id': 14,         }     },     224199: {//index thread_id         0: {             'id': 88,             'thread_id': 224199,             'message': "yessss...",             'created_at': "may 20, 2015",             'datetime': 1432306513,             'sender_id': 14,         },         1: {//index thread_id             'id': 75,             'thread_id': 224199,             'message': "hellowwww...",             'created_at': "may 19, 2015",             'datetime': 1432021227,             'sender_id': 14,         }     },     105775: {//index thread_id         0: {             'id': 85,             'thread_id': 105775,             'message': "hello",             'created_at': "may 20, 2015",             'datetime': 1432118191,             'sender_id': 13,         },         1: {             'id': 70,             'thread_id': 105775,             'message': "hii",             'created_at': "may 19, 2015",             'datetime': 1432021227,             'sender_id': 13,         }     },     107917: {//index thread_id         0: {             'id': 56,             'thread_id': 107917,             'message': "how r u??",             'created_at': "may 16, 2015",             'datetime': 1431792155,             'sender_id': 14,         },         1: {             'id': 30,             'thread_id': 107917,             'message': "hi.. m fine.",             'created_at': "may 6, 2015",             'datetime': 1430920006,             'sender_id': 14,         },         2: {             'id': 30,             'thread_id': 107917,             'message': "hi!!!!..how r u??",             'created_at': "may 6, 2015",             'datetime': 1430920006,             'sender_id': 14,         }     }, }; 

i don't know how sort in js.

i need recent datetime of thread's array top on array

does want?

//var inboxmessages = {... input ...};  function converttoorderedarrays(inboxmessages) {   var output = [];   var thread_ids = object.keys(inboxmessages);   var threadobject, threadarray, keys;    (var ii=0, thread_id; thread_id=thread_ids[ii]; ii++) {     threadobject = inboxmessages[thread_id];     keys = object.keys(threadobject);     threadarray = [];     output.push(threadarray);     (var jj=0, key; key=keys[jj]; jj++) {     threadarray.push(threadobject[key]);       }      threadarray.sort(function (a, b) {       return (b.datetime - a.datetime);     });    }    output.sort(function (a, b) {     return(b[0].datetime - a[0].datetime);   });    return output; }   function getthreadidarray(threadarrays) {   var thread_id_array = [];    (var ii=0, thread_array; thread_array=threadarrays[ii]; ii++) {     thread_id = thread_array[0].thread_id;     thread_id_array.push(thread_id);   }    return thread_id_array; }  function findthreadarray(thread_id, thread_id_array, threadarrays) {   var index = thread_id_array.indexof(thread_id);   var threadarray;    if (index < 0) {     // no matching thread found   } else {     threadarray = threadarrays[index];   }    return threadarray; }   var output = converttoorderedarrays(inboxmessages); var thread_id_array = getthreadidarray(output); var mostrecentthread = thread_id_array[0]; var mostrecentmessage = output[0][0]; var thread105775 = findthreadarray(105775, thread_id_array, output);  console.log(output); // sorted array of sorted arrays console.log(thread_id_array); // [378552, 224199, 105775, 107917] console.log(mostrecentthread); // 378552 console.log(mostrecentmessage); /* {   created_at: "may 29, 2015" , datetime: 1432906923 , id: 108 , message: "hi" , sender_id: 14 , thread_id: 378552 } */ console.log(thread105775); // sorted array 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -