Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function sortArrayByKey( arr, key ){
- var keyPath = key.split( '.' );
- return arr.map( function( e, i ) {
- var value = e[ keyPath[ 0 ] ];
- for( var index = 1; index < keyPath.length; index ++ ){
- value = value[ keyPath[ index ] ];
- }
- return {
- index: i,
- value: value
- };
- } )
- .sort( function( a, b ) {
- return +( a.value > b.value ) || +( a.value === b.value ) - 1;
- })
- .map( function( e ){
- return arr[ e.index ];
- } );
- }
- /*
- // example usage:
- console.clear();
- var log = console.log;
- var array = [ 'Delta', 'alpha', 'CHARLIE', 'bravo' ].map(function(word){
- return {
- letter: word,
- values: {
- value1: Math.round(Math.random() * 10 ),
- value2: Math.round(Math.random() * 10 )
- }
- };
- });
- log( array );
- log( '////////////////////////////////' );
- var result = sortArrayByKey( array, 'letter' );
- log( result );
- log( '////////////////////////////////' );
- var result = sortArrayByKey( array, 'values.value2' );
- log( result );
- log( '////////////////////////////////' );
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement