Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. // 1. add props
  2.  
  3. const user = { id: 100, name: 'Howard Moon'} // { id: 100, name: 'Howard Moon' }
  4. const userWithPass = { ...user, password: 'Password!' } // { id: 100, name: 'Howard Moon', password: 'Password!'
  5.  
  6. // 2. merge obj
  7.  
  8. const part1 = { id: 100, name: 'Howard Moon' }
  9. const part2 = { id: 100, password: 'Password!' }
  10.  
  11. const user = { ...part1, ...part2 } // { id: 100, name: 'Howard Moon', password: 'Password!' }
  12.  
  13. // 3. exclude props
  14.  
  15. const noPassword = ({ password, ...rest }) => rest
  16. const user = { id: 100, name: 'Howard Moon', password: 'Password!' }
  17.  
  18. noPassword(user) // { id: 100, name: 'Howard moon' }
  19.  
  20. // 4. dynamically exclude props
  21.  
  22. const user = { id: 100, name: 'Howard Moon', password: 'Password!' }
  23.  
  24. const removeProperty = prop => ({ [prop]: _, ...rest }) => rest
  25.  
  26. const removePassword = removeProperty('password')
  27. const removeId = removeProperty('id')
  28.  
  29. removePassword(user) // { id: 100, name: 'Howard Moon' }
  30. removeId(user) // { name: 'Howard Moon', password: 'Password!' }
  31.  
  32. // 5. organize props
  33.  
  34. const user = { name: 'Howard Moon', password: 'Password!', id: 100 }
  35.  
  36. const organize = object => ({ id: undefined, ...object }) // move id to the first property
  37.  
  38. organize(user) // { id: 300, password: 'Password!', name: 'Howard Moon' }
  39.  
  40. const organize = ({ password, ...object }) => ({ ...object, password }) // move password to last property
  41.  
  42. organize(user) // { name: 'Howard Moon', id: 100, password: 'Password!' }
  43.  
  44. // 6. default props
  45.  
  46. const user = { id: 200, name: 'Vince Noir' }
  47. const user2 = { id: 400, name: 'Bollo', quotes: ["I've got a bad feeling about this..."] }
  48.  
  49. const setDefaults = ({ quotes = [], ...object}) => ({ ...object, quotes })
  50.  
  51. setDefaults(user) // { id: 200, name: 'Vince Noir', quotes: [] }
  52. setDefaults(user2) // { id: 400, name: 'Bollo', quotes: ["I've got a bad feeling about this..."] }
  53.  
  54. // 7. rename props
  55.  
  56. const renamed = ({ ID, ...object }) => ({ id: ID, ...object })
  57.  
  58. const user = { ID: 500, name: 'Vince Noir' }
  59.  
  60. renamed(user) //=> { id: 500, name: 'Vince Noir' }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement