This article will share with you a function for sorting arrays or objects. This function can sort arrays or elements by any depth array or object value as the sorting base and share a function for sorting arrays or objects. This function can sort the array or element with any depth array or object value as the sorting base.
The Code is as follows:
/*** Sort the array or object ** by Jinko * date -- * @ param object array or object * @ param subkey, which can be a string, it can also be an array * @ param desc sorting method, true: descending, false | undefined: ascending * @ returns {*} returns the sorted array or object ** note: for sorting objects, if you use console. the display of log printing objects may be inconsistent with the sorting results. * The keys of log printing objects are displayed in alphabetical order by the browser, but in the for loop, it is the correct sorting order */function sort_object (object, subkey, desc) {var is_array = false; if (Object. prototype. toString. call (object) = '[object Array]') {is_array = true;} if (is_array) {var keys = {length: object. length };} else {if (typeof (Object. keys) = 'function') {var keys = Object. keys (object);} else {var keys = []; for (var key in keys) {keys. push (key) ;}}for (var I =; I
Vali) {var tmp = object [I]; object [I] = object [j]; object [j] = tmp ;}} else {if (valj <vali) {var tmp = object [I]; object [I] = object [j]; object [j] = tmp ;}}} else {// object sorting var obi = object [keys [I]; var obj = Object [keys [j]; if (object. prototype. toString. call (subkey) = '[object Array]') {var vali = obi; var valj = obj; for (var si =; si
Vali) {var tmp = keys [I]; keys [I] = keys [j]; keys [j] = tmp ;}} else {if (valj <vali) {var tmp = keys [I]; keys [I] = keys [j]; keys [j] = tmp ;}}// is! Array }}if (is_array) {return object;} else {var sorted ={}; for (var I =; I
The usage is as follows:
Usage 1:
Var data = {"a": {"session_offline":, "session_online":, "session_count" :}, "B": {"session_offline":, "session_online ":, "session_count" :}, "c": {"session_offline":, "session_online":, "session_count" :}, "d": {"session_offline ":, "session_online":, "session_count" :}}; // sort data = sort_object (data, 'session _ online') in ascending order based on the session_online field; for (var k in data) {console. log (data [k]);} console. log ('------------------'); // sort data = sort_object (data, 'session _ offline', true) in descending order based on the session_offline field; for (var k in data) {console. log (data [k]);}
Usage 2:
Var data = [{"cpu":, "cpuhz":, "cpuhz_use" :,}, {"cpu":, "cpuhz":, "cpuhz_use ":,}, {"cpu":, "cpuhz":, "cpuhz_use" :,}, {"cpu":, "cpuhz":, "cpuhz_use" :,}]; // sort data = sort_object (data, 'cpuhz _ use') according to the cpuhz_use field; console. log (data );
Usage 3:
Var data = [,]; // sort one-dimensional arrays in ascending order. data = sort_object (data); console. log (data); // sort one-dimensional arrays in descending order data = sort_object (data, null, true); console. log (data );
Usage 4:
Var data = {'A':, 'B':, 'C':, 'D':}; // sort objects in ascending order. data = sort_object (data ); // sort objects in descending order data = sort_object (data, '', true); for (var k in data) {console. log (k, ':', data [k]);}
Usage 5:
Var data = {"l _": {"l": {"l" :}}, "l _": {"l": {"l ":}}, "l _": {"l": {"l" :}}, "l _": {"l": {"l ":}}}; // sort the values of l under the object element in ascending order. data = sort_object (data, ['l', 'L']); for (var k in data) {console. log (data [k]. l );}
Usage 6:
Var data = [[{"a" :},,], [{"a" :},,], [{"a" :},,]; // sort data = sort_object (data, [, 'a']) in ascending order based on the key name a of the elements below the array. for (var k =; k
The above content is a summary of the JavaScript Object array sorting function and six usage. I hope you will like it.