
рдЬрдм рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХреЛрдб рдХреА рдмрд╛рдд рдЖрддреА рд╣реИ, рддреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рджрд░рд╛рд░ рдХреЛ рд╕рдмрд╕реЗ рдХрдард┐рди рдЕрд╡рдзрд╛рд░рдгрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдо рдХрд┐рдпрд╛ред рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, Reduce рдХреЗ рдХрдИ рдирд╛рдо рд╣реИрдВред рд╕рдВрдЪрд┐рдд рдХрд░реЗрдВ, рдореЛрдбрд╝реЗрдВ, рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░реЗрдВ рдФрд░ рдЕрд▓рдЧ рдХрд░реЗрдВред рдпреЗ рдирд╛рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рдЕрд░реНрде рдФрд░ рдХрд╛рд░реНрдп рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдкреАрдЫреЗ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдПрдХ рдореВрд▓реНрдп рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, Reduce рдХреЛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рд╕реВрдЪреА рдХреЛ рдХрд┐рд╕реА рднреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк 15 рдЬреЛрдбрд╝рдХрд░ рдПрдХ рд╕рд░рдгреА [5,4,3,2,1] рдХреЛ 15 рддрдХ рдШрдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВредрдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрдо рдХрд░рдиреЗ рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдПрдХ рд╕реВрдЪреА рдореЗрдВ рдПрдХ рдЧреБрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рджреВрд░ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕ рдмреНрд▓реЙрдЧ рдореЗрдВ, рдЖрдк
рд╢реАрд░реНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдиреА рдореЗрдВ рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдо рдХрд┐рдП рдЧрдП рдЙрдкрдпреЛрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░рд╕рд┐рджреНрдз рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рд╕реАрдЦреЗрдВрдЧреЗред
рдореИрдВрдиреЗ 10 рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХрдо рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд┐рд░ рд╕реЗ рд╕реВрдЪреАрдмрджреНрдз рдХрд┐рдпрд╛ рд╣реИред рддреЛ, рдЗрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдиреАрдЪреЗ рджреЗрдЦреЗрдВ: -рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдЖрдЗрдЯрдореЛрдВ рдХреА рд╕реВрдЪреА рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП), рдлрд╝рдВрдХреНрд╢рди рдмрджрд▓рдирд╛ (рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди)
рдХрд╛рд░реНрдп
рджрд┐рдП рдЧрдП рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдореЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рджрд┐рдП рдЧрдП рдПрд░реЗ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдирдП рдРрд░рд░ рдЖрдЗрдЯрдо рд▓реМрдЯрд╛рддрд╛ рд╣реИред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const map = (transformFunction, array1) => array1.reduce((newArray1, xyz) => { newArray1.push(transformFunction(xyz)); return newArray1; }, [] );
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const double = (x) => x * 2; const reverseString = (string) => string .split('') .reverse() .join(''); map(double, [200, 300, 400]); Output: [400, 600, 800] map(reverseString, ['Hello Alka', 'I love cooking']);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЗрдЯрдо / рдорд╛рдиреЛрдВ рдХреА рд╕реВрдЪреА), рд╡рд┐рдзреЗрдп рдХрд░реЗрдВ (рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ)
рдХрд╛рд░реНрдп
рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдкрд░реАрдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рдзреЗрдп рдЧрд▓рдд рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ рддреЛ рдХреЗрд╡рд▓ рдЖрдЗрдЯрдо рдирдП рд╕рд░рдгреА рдореЗрдВ рдЬреБрдбрд╝ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдЗрдЯрдо рдХреЛ рдирдП рд╕рд░рдгреА рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const reject = (predicate, arr3) => arr3.reduce((newArray, val3) => { if (predicate(val3) === false) { newArray.push(val3); } return newArray; }, [] );
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const isEven = (z) => z % 2 === 0; reject(isEven, [1, 6, 4, 3]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдЖрдЗрдЯрдореЛрдВ рдХреА рд╕реВрдЪреА), рд░рд┐рдбреНрдпреВрд╕рд░ (рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ рдЬреЛ рджреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдЕрд░реНрдерд╛рдд рд╕рдВрдЪрдпрдХрд░реНрддрд╛ рдФрд░ рд╕рд░рдгреА рдХреА рд╕реВрдЪреА рд╕реЗ рд╡рд░реНрддрдорд╛рди рддрддреНрд╡)
рдХрд╛рд░реНрдп
рдЗрд╕рдХрд╛ рдХрд╛рдо рдХрдо рдХрд░рдиреЗ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдПрдХрд▓ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдпрд╣ рдПрдХрд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдиреБрд░реВрдк рдкреНрд░рддреНрдпреЗрдХ рдХрдо рдореВрд▓реНрдп рдХреА рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const scan = (reducer, initialVal, array) => { const reducedValues = []; array.reduce((acc, currentval) => { const newAcc = reducer(acc, currentval); reducedValues.push(newAcc); return newAcc; }, initialVal); return reducedValues; };
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const add = (y, z) => y + z; const multiply = (y, z) => y * z; scan(add, 0, [1, 2, 3, 4]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдЖрдЗрдЯрдореЛрдВ рдХреА рд╕реВрдЪреА рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд╡рд┐рдзреЗрдп (рдЧрд▓рдд рдпрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИ)
рдХрд╛рд░реНрдп
рдпрд╣рд╛рдВ, рдЖрдкрдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирдпрд╛ рдПрд░реЗ рдорд┐рд▓реЗрдЧрд╛ред рдпрджрд┐ рд╡рд┐рдзреЗрдп рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рдорд╛рди рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдЗрдЯрдо рдирдП рд╕рд░рдгреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдпрд╣ рдЧрд▓рдд рд╣реИ, рддреЛ рдЖрдЗрдЯрдо рдирдП рд╕рд░рдгреА рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const filter = (predicate, arr1) => arr1.reduce((newArray, val) => { if (predicate(val) === true) { newArray.push(val); } return newArray; }, [ ] );
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const isEven = (y) => y % 2 === 0; filter(isEven, [3, 2, 5]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪреА рдЖрдЗрдЯрдо), рд╡рд┐рдзреЗрдп (рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд╝рдВрдХреНрд╢рди)
рдХрд╛рд░реНрдп
рдпрд╣рд╛рдВ, рдХреЛрдИ рднреА рд╕рд╣реА рдореВрд▓реНрдп рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ рдпрджрд┐ рд╡рд┐рдзреЗрдп рд╣рд░ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдпрд╣ рд╣рд░ рд╕рд╣реА рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдореВрд▓реНрдп рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const none = (predicate, array) => array.reduce((acc1, val1) => !acc1 && !predicate(val1), false);
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const isEven2 = (x) => x % 2 === 0; none(isEven2, [1, 3, 5]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдорджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ), рд╡рд┐рдзреЗрдп (рдЭреВрдареА рдпрд╛ рд╕рдЪреНрдЪреА рдХреАрдордд рд▓реМрдЯрд╛рддреЗ рд╣реБрдП)
рдХрд╛рд░реНрдп
рдпрд╣ рдПрдХ рд╕рд░рдгреА рдХреЗ рд╡рд┐рднрд╛рдЬрди рдХреЛ рд╡рд┐рдзреЗрдп рдореВрд▓реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рджреЛ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд╡рд┐рдзреЗрдп рд╕рд╣реА рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИ рддреЛ рдЖрдЗрдЯрдо рд╕реВрдЪреА 1 рдореЗрдВ рдЬрд╛рдПрдЧрд╛ред рдФрд░, рдпрд╣ рд╕реВрдЪреА 2 рдкрд░ рдЬрд╛рдПрдЧрд╛ред рд╕рд░рдгреА рдХреЛ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдЦрдВрдбреВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдзреБрдирд┐рдХ рджрд┐рди рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рд╢реАрд░реНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдирд┐рдпреЛрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдЖрдЗрдП рдЖрдЧреЗ рдХреЗ рдЪрд░рдгреЛрдВ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ:
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const partition = (predicate, array) => array.reduce( (result3, item) => { const [list1, list2] = result; if (predicate(item) === true) { list1.push(item); } else { list2.push(item); } return result3; }, [ [], [] ] );
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const isEven = (z) => z % 2 === 0; partition(isEven, [1, 2, 3]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд╡рд┐рдзреЗрдп (рдореВрд▓реНрдп рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рд╣реИ)
рдХрд╛рд░реНрдп
рдПрдХ рдЗрдирдкреБрдЯ рдореВрд▓реНрдп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдкрд░, рдпрджрд┐ рд╡рд┐рдзреЗрдп рд░рд┐рдЯрд░реНрди рд╕рд╣реА рдорд╛рдирддрд╛ рд╣реИ, рддреЛ рд╕рднреА рдореВрд▓реНрдп рд╕рд╣реА рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдВрдЧреЗред рдПрд▓реНрд╕, рдпрд╣ рдПрдХ рдЧрд▓рдд рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const all = (predicate, array) => array.reduce((arr, val) => arr && predicate(val), true);
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const sequl3 = (x) => x === 3; all(sequl3, [3]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рд╡рд╕реНрддреБрдУрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рд╡рд┐рдзреЗрдп (рдореВрд▓реНрдп рд╕рд╣реА рдпрд╛ рдЧрд▓рдд рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдп рд╣реИ)
рдХрд╛рд░реНрдп
рдХрд┐рд╕реА рднреА рдЗрдирдкреБрдЯ рд╡реИрд▓реНрдпреВ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╡рд┐рдзреЗрдп рд╕рд╣реА рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рддреЛ рдХреБрдЫ рд╕рддреНрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдПрдХ рдЧрд▓рдд рдорд╛рди рд▓реМрдЯрд╛рдПрдЧрд╛ред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
рдЖрдЗрдП рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд▓реЗрддреЗ рд╣реИрдВ: const some = (predicate, array) => array.reduce((arc, val) => arc || predicate(val), false);
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const aqua3 = (x) => x === 3; some(aqua3, [3]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рдЖрдЗрдЯрдореЛрдВ рдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП), рдХреБрдВрдЬреА (рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдХреБрдВрдЬреА рдирд╛рдо рдкреНрд▓рдХ рдХрд░рдирд╛)
рдХрд╛рд░реНрдп
рдпрд╣ рд╕рд░рдгреА рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдЖрдЗрдЯрдо рд╕реЗ рджрд┐рдП рдЧрдП рдХреБрдВрдЬреА рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдорд╛рдиреЛрдВ рдХрд╛ рдПрдХ рдирдпрд╛ рд╕рд░рдгреА рджреЗрддрд╛ рд╣реИред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const pluck = (key3, array) => array.reduce((values3, current) => { values.push(current[key3]); return values3; }, [] );
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
pluck('name', [{ name: 'Soman' }, { name: 'Rovin' }, { name: 'Jojo' }]);
рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛
рд╕рд░рдгреА (рд╕рд░рдгреА рдХреА рд╕реВрдЪреА рдореЗрдВ рдЖрдЗрдЯрдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП), рд╡рд┐рдзреЗрдп (рдЭреВрдареА рдпрд╛ рд╕рдЪреНрдЪреА рдорд╛рди рд▓реМрдЯрд╛рдиреЗ рд╡рд╛рд▓реА рдлрд╝рдВрдХреНрд╢рди)
рдХрд╛рд░реНрдп
рдпрд╣ рдкрд╣рд▓рд╛ рддрддреНрд╡ рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬреЛ рджрд┐рдП рдЧрдП рд╡рд┐рдзреЗрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдореИрдЪ рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡рд╛рдкрд╕ рд▓реМрдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░реЗрдВ?
const find = (predicate, array) => array.reduce((output, item) => { if (output !== undefined) { return output; } if (predicate(item) === true) { return item; } return undefined; }, undefined);
рдорд╛рдорд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
const isEven = (a) => a % 2 === 0; find(isEven, []);
рдЕрдВрддрд┐рдо рдиреЛрдЯ:
рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрдо рд╕рдордп рдореЗрдВ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЙрдирдХреЗ рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рдпрд╛рд╕реЛрдВ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХрд░реЗрдЧрд╛ред рдпрджрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдХреЛрдбрд┐рдВрдЧ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рд╕рдорд░реНрдерди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рд╡рд┐рдХрд╛рд╕ рдХрдВрдкрдиреА рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред