Guest User

Untitled

a guest
May 26th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. /*
  2. Sort array of objects based on another array
  3. Original function:
  4.  
  5. function mapOrder (array, order, key) {
  6. array.sort( function (a, b) {
  7. var A = a[key], B = b[key];
  8. if (order.indexOf(A) > order.indexOf(B)) {
  9. return 1;
  10. } else {
  11. return -1;
  12. }
  13. });
  14. return array;
  15. };
  16. *******
  17. * ES6:
  18. *******/
  19. mapOrder = (array, order, key) => {
  20. return array.sort((a, b) => {
  21. const A = a[key],
  22. B = b[key];
  23. return order.indexOf(A) > order.indexOf(B) ? 1 : -1;
  24. });
  25. };
  26.  
  27.  
  28. /**
  29. * Example:
  30. */
  31.  
  32. var item_array, item_order, ordered_array;
  33.  
  34. item_array = [
  35. { id: 2, label: 'Two' }
  36. , { id: 3, label: 'Three' }
  37. , { id: 5, label: 'Five' }
  38. , { id: 4, label: 'Four' }
  39. , { id: 1, label: 'One'}
  40. ];
  41.  
  42. item_order = [1,2,3,4,5];
  43.  
  44. ordered_array = mapOrder(item_array, item_order, 'id');
  45.  
  46. console.log('Ordered:', JSON.stringify(ordered_array));
Add Comment
Please, Sign In to add comment