рд╣реЗрд▓реЛ, рд╣реЗрдмреНрд░! рдореИрдВ рдЖрдкрдХреЛ рдЬреЛрдПрд▓ рдереЙрдорд╕ рджреНрд╡рд╛рд░рд╛ "7 рдЯреНрд░рд┐рдХреНрд╕ рд╡рд┐рде рд░реЗрд╕реНрдЯрд┐рдВрдЧ рдПрдВрдб рд╕реНрдкреНрд░реЗрдбрд┐рдВрдЧ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕" рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реВрдВ редрд╕рднреА рдХреЛ рдирдорд╕реНрдХрд╛рд░, рджреВрд╕рд░реЗ рджрд┐рди рдПрдХ рдХрд╛рдо рдХреЗ рд╕рд╣рдпреЛрдЧреА рдиреЗ рдореБрдЭреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рдПрдХ рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ рджрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдЖрд░рд╛рдо рдФрд░ рдкреНрд░рд╕рд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдереА рдФрд░ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред рддреЛ, рдЪрд▓реЛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред
рд░реЗрд╕реНрдЯ рдПрдВрдб рд╕реНрдкреНрд░реЗрдб рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХреЗрд╡рд▓ рдПрдХ рд╕рд░рдгреА рдореЗрдВ рддрд░реНрдХреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредрдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЖрдкрдХреЛ рдЖрд░рд╛рдо рдФрд░ рдкреНрд░рд╕рд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ 7 рд╕рдмрд╕реЗ рдХрдо рдЬреНрдЮрд╛рдд рдЯреНрд░рд┐рдХреНрд╕ рдорд┐рд▓реЗрдВрдЧреЗред1. рдЧреБрдг рдЬреЛрдбрд╝рдирд╛
рдХреНрд▓реЛрди рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛редрдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдХреНрд▓реЛрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд╕реНрддреБ рдФрд░ рдЬреЛрдбрд╝рдиреЗ рдкрд╛рд╕рд╡рд░реНрдб рд╕рдВрдкрддреНрддрд┐ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП userWithPass рд╡рд╕реНрддреБ редconst user = { id: 100, name: 'Howard Moon'}
const userWithPass = { ...user, password: 'Password!' }
user
userWithPass
2. рд╡рд╕реНрддреБрдУрдВ рдХрд╛ рд╡рд┐рд▓рдп
рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ part1 рдФрд░ part2 merzhatsya рдПрдХ рд╡рд╕реНрддреБ user1const part1 = { id: 100, name: 'Howard Moon' }
const part2 = { id: 100, password: 'Password!' }
const user1 = { ...part1, ...part2 }
рдЗрд╕ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдиреНрдирд┐рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИредconst partial = { id: 100, name: 'Howard Moon' }
const user = { ...partial, id: 100, password: 'Password!' }
user
3. рдХрд┐рд╕реА рд╡рд╕реНрддреБ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдирд┐рдХрд╛рд▓рдирд╛
рдПрдХ рд╡рд╕реНрддреБ рд╕реЗ рдЧреБрдг рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рдФрд░ рдмрд╛рдХреА рдмрдпрд╛рдиреЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдмрд╛рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд╖реНрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреА рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдЙрд╕рдореЗрдВ рд╕реЗ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ редconst noPassword = ({ password, ...rest }) => rest
const user = {
id: 100,
name: 'Howard Moon',
password: 'Password!'
}
noPassword(user)
4. рдЧреБрдгреЛрдВ рдХрд╛ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд▓реЛрдкрди
рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, removeProperty рдлрд╝рдВрдХреНрд╢рди рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдк рд▓реЗрддрд╛ рд╣реИред рддрд░реНрдХ рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕рдВрдкрддреНрддрд┐ рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХреНрд▓реЛрди рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рд╕рдВрдкрддреНрддрд┐ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рддреЗ рд╣реИрдВредconst user1 = {
id: 100,
name: 'Howard Moon',
password: 'Password!'
}
const removeProperty = prop => ({ [prop]: _, ...rest }) => rest
const removePassword = removeProperty('password')
const removeId = removeProperty('id')
removePassword(user1)
removeId(user1)
5. рдирд╛рдо рд╕реЗ рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХрд╛ рд╕рдВрдЧрдарди рдпрд╛ рдЫрдВрдЯрдиреА
рдХрднреА-рдХрднреА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдЧреБрдг рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдХрдИ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреА рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдпрд╛ рдордзреНрдп рддрдХ рдЧреБрдгреЛрдВ рдХреЛ рдзрдХреНрдХрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВредconst user3 = {
password: 'Password!',
name: 'Naboo',
id: 300
}
const organize = object => ({ id: undefined, ...object })
organize(user3)
рдЕрдВрдд рдореЗрдВ рдкрд╛рд╕рд╡рд░реНрдб
рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП , рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдирд╖реНрдЯ рдХрд░рдиреЗ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ , рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд╛рд░ рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред6. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреБрдг
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреБрдг рд╡реЗ рдЧреБрдг рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╕реЗрдЯ рдХрд┐рдП рдЧрдП рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рд╕реЗрдЯ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗредрдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЙрджреНрдзрд░рдг рдлрд╝реАрд▓реНрдб рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ рдореЗрдВ user2 рд╡рд╕реНрддреБ ред SetDefaults рдлрд╝рдВрдХреНрд╢рди, рдЙрджреНрдзрд░рдг рдлрд╝реАрд▓реНрдб рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЗрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдорд╛рди [] рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ ред SetDefaults (user2)
рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдорд╛рди рдХреЛрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреБрдг рджреЗрддрд╛ рд╣реИ : []
рдЬрдм setDefaults (user4) рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ , рддреЛ рдлрд╝рдВрдХреНрд╢рди рдЕрдирдореЙрдбрд┐рдлрд╛рдЗрдб рдорд╛рди рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ user4 рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрджреНрдзрд░рдг рдЧреБрдг рд╣реИconst user2 = {
id: 200,
name: 'Vince Noir'
}
const user4 = {
id: 400,
name: 'Bollo',
quotes: ["I've got a bad feeling about this..."]
}
const setDefaults = ({ quotes = [], ...object}) =>
({ ...object, quotes })
setDefaults(user2)
setDefaults(user4)
рдЖрдк рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдкрд╣рд▓реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдВ:const setDefaults = ({ ...object}) => ({ quotes: [], ...object })
7. рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рдЧреБрдг
рдКрдкрд░ рд╕реЗ рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдПрдХ рдлрдВрдХреНрд╢рди рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЧреБрдгреЛрдВ рдХрд╛ рдирд╛рдо рдмрджрд▓ рджреЗрддрд╛ рд╣реИредрдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рд▓рд┐рдЦреА рдЧрдИ рд╕рдВрдкрддреНрддрд┐ рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд╕реНрддреБ рд╣реИ, рдФрд░ рд╣рдореЗрдВ рдЗрд╕реЗ рдирд┐рдЪрд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдЖрдИрдбреА рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЛ рд╣рдЯрд╛рдХрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдирд╛рдо рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗрдВ рдЬрдмрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреНрд▓реЛрди рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИредconst renamed = ({ ID, ...object }) => ({ id: ID, ...object })
const user = {
ID: 500,
name: "Bob Fossil"
}
renamed(user)
8. рдмреЛрдирд╕ред рдПрдХ рд╢рд░реНрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝рдирд╛
рдРрд╕реА рд╡рд┐рдзрд┐ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП @vinialbano рдХреЛ рдзрдиреНрдпрд╡рд╛рдж ред рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝реАрд▓реНрдб рддрднреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдЬрдм рдкрд╛рд╕рд╡рд░реНрдб == рд╕рдЪ рд╣реЛ !const user = { id: 100, name: 'Howard Moon' }
const password = 'Password!'
const userWithPassword = {
...user,
id: 100,
...(password && { password })
}
userWithPassword
рдирд┐рд╖реНрдХрд░реНрд╖
рдореИрдВрдиреЗ рдмрд╛рдХреА рдФрд░ рдкреНрд░рд╕рд╛рд░ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХреБрдЫ рдХрдо рдкреНрд░рд╕рд┐рджреНрдз рддрд░реАрдХреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рдХреЛ рдЬрд╛рдирддреЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рд╕реВрдЪреА рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓рд┐рдЦреЗрдВред рдпрджрд┐ рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдерд╛, рддреЛ рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдЕрдкрдиреЗ рдорд┐рддреНрд░реЛрдВ рдФрд░ рдкрд░рд┐рдЪрд┐рддреЛрдВ рдХреЛ рджреЗрдВред