Advertisement
Guest User

Untitled

a guest
May 29th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.01 KB | None | 0 0
  1. function sortArrayByKey( arr, key ){
  2. var keyPath = key.split( '.' );
  3. return arr.map( function( e, i ) {
  4. var value = e[ keyPath[ 0 ] ];
  5. for( var index = 1; index < keyPath.length; index ++ ){
  6. value = value[ keyPath[ index ] ];
  7. }
  8. return {
  9. index: i,
  10. value: value
  11. };
  12. } )
  13. .sort( function( a, b ) {
  14. return +( a.value > b.value ) || +( a.value === b.value ) - 1;
  15. })
  16. .map( function( e ){
  17. return arr[ e.index ];
  18. } );
  19. }
  20. /*
  21. // example usage:
  22. console.clear();
  23. var log = console.log;
  24.  
  25. var array = [ 'Delta', 'alpha', 'CHARLIE', 'bravo' ].map(function(word){
  26. return {
  27. letter: word,
  28. values: {
  29. value1: Math.round(Math.random() * 10 ),
  30. value2: Math.round(Math.random() * 10 )
  31. }
  32. };
  33. });
  34.  
  35. log( array );
  36. log( '////////////////////////////////' );
  37.  
  38. var result = sortArrayByKey( array, 'letter' );
  39. log( result );
  40. log( '////////////////////////////////' );
  41.  
  42. var result = sortArrayByKey( array, 'values.value2' );
  43. log( result );
  44. log( '////////////////////////////////' );
  45. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement