рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдкрд╛рд░рд┐рдд рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рджреМрд░рд╛рди _.union рд╣рдореЗрд╢рд╛ рдбреБрдкреНрд▓реАрдХреЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП _.union( [ { a:1 } ], [ { a:1 } ])
рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ [ { a:1 }, { a:1 } ]
рд╡рд┐рдкрд░реАрдд рд░реВрдк рд╕реЗ, рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХрд╛ рдЕрдкрдирд╛ isEqual рдлрд╝рдВрдХреНрд╢рди рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рд╡рд┐рдЪрд╛рд░рд╛рдзреАрди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд░рд╛рдмрд░ рд╣реИрдВред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдзреНрд╡рдЬ/рд╡рд┐рдХрд▓реНрдк рд╣реЛ рдЬреЛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдирддрд╛ рдХреА рддреБрд▓рдирд╛, рдпрд╛ рдПрдХ рддреБрд▓рдирд┐рддреНрд░ рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реЛ?
рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рддреБрд▓рдирд╛ рд╕рдорд╛рд░реЛрд╣ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред :+1:
рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рд╕рднреА рд╕рд░рдгреА рдЧрдгрдирд╛ рдХрд╛рд░реНрдпреЛрдВ рдЬреИрд╕реЗ рдЕрдВрддрд░, рдЪреМрд░рд╛рд╣реЗ, рдЕрджреНрд╡рд┐рддреАрдп рдЗрддреНрдпрд╛рджрд┐ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╕рдорд╛рдирддрд╛ рддреБрд▓рдирд┐рддреНрд░ рдХреЗ рдЙрдкрдпреЛрдЧ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░рдгреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреВрд░реНрдг рд╕реВрдЯ рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛ рдЬреЛ рдмреВрд▓рд┐рдпрди рдкреИрд░рд╛рдореАрдЯрд░ рдорд╛рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рдорд╛рдирддрд╛ рдХреА рддреБрд▓рдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ _.union() рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрджрд┐ рдпрд╣ рд╕рддреНрдп рд╣реИ рддреЛ рдпрд╣ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рд╕рд░рдгреА рдореЗрдВ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдЧрд╛ред
рдЬреИрд╕реЗ _.union([1, 2, 3, 10, [{a:1}, {a:1}]], true)
, рдЖрдЙрдЯрдкреБрдЯ [1,2,3,10, {a:1}]
@ amiral84 рдирд╣реАрдВ, рдпрд╣ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрджрд┐ рдЖрдк рд╡рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдорд┐рд▓рди рдХреЗ рд╕рд╛рде рдорд┐рд▓рди рдХрд░реЗрдВред
@michaelficarra рддреЛ рдХреНрдпрд╛ рдореБрдЭреЗ рдЗрд╕ рд╡рд┐рд╖рдп рдХреА рдмрд╛рдд рдпрд╛рдж рдЖрдИ? :рдбреА
@ amiral84 рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред рдкрд╣рд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рд╕реБрд╡рд┐рдзрд╛ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░реА рддрд░рд╣ рдФрд░ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд╕реНрдпрд╛ _.uniq
рдореЗрдВ рдкреНрд░рддреАрдд рд╣реЛрддреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ _.union
рдЕрджреНрд╡рд┐рддреАрдп рдФрд░ рд╕рдорддрд▓ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд░реИрдкрд░ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
_.union = restArgs(function(arrays) {
return _.uniq(flatten(arrays, true, true));
});
рдЗрд╕ рдереНрд░реЗрдб рдиреЗ рдореБрдЭреЗ _.intersectionWith
, _.differenceWith
, _.unionWith
, рдФрд░ _.uniqWith
рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рддреБрд▓рдирд╛ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
var array = [ { 'a': 1, 'b': 2 }, { 'a': 1, 'b': 3 }, { 'a': 1, 'b': 2 } ];
_.uniqWith(array, _.isEqual);
// => [{ 'a': 1, 'b': 2 }, { 'a': 1, 'b': 3 }]
рдпрд╛ _.isCollection
рдХреА рддрд░реНрдЬ рдкрд░ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░, рддреЛ рддреБрд▓рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП _.isEqual
рдХреЗ рдмрдЬрд╛рдп ===
рдЬреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
@dperrymorrow
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
_.isEqual
рдХреЗ рдмрдЬрд╛рдп===
рдЬреЛ рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред
рдбрд╛рдпрдирд╛рдорд┐рдХ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдПрдХ рдмреБрд░реЗ рд╡рд┐рдЪрд╛рд░ рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИред рдЬреЗрдПрд╕ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП ===
рдпрд╛ SameValueZero
рддреБрд▓рдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдЙрди рддреБрд▓рдирд╛рдУрдВ рд╕реЗ рдмрд╛рд╣рд░ рдЬрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рддреЛ _.uniqWith
рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░реЗрдЧрд╛ред
рдЗрд╕ @jdalton рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд _opWith рдлрд╝рдВрдХреНрд╢рдВрд╕ рдЬреЛ рдореИрдВ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рд╕рд╣реА рд╣реИрдВред рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдЬрдм рд╡реЗ рд░рд┐рд▓реАрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реЛрдВрдЧреЗ?
@jdalton рддреБрд▓рдирд╛ рдкрд░ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдЖрдк рдЖрдорддреМрд░ рдкрд░ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдмреАрдЪ рдкреВрд░реЗ рдЕрдВрддрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдЕрджреНрд╡рд┐рддреАрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ?
рдХреНрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд @wilhen01 рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ _(рдпрджреНрдпрдкрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╕реЗ рдЕрдзрд┐рдХ
_.chain([{ a: 1 }]).union( [{a: 1}]).unique('a').value();
//=> [{a: 1}]
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд @ Wilhen01 рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ (рдпрджреНрдпрдкрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╕реЗ рдЕрдзрд┐рдХ рд╡рд░реНрдмреЛрдЬрд╝)
_.uniq
рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдпрд╣ рдореЗрд░реА рдмрд╛рдд рд╣реИ, рдЙрдкрд░реЛрдХреНрдд рдХреЛрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдкреЛрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рд╕рдВрдШ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдкрд░ рдПрдХ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдпреВрдирд┐рдХ/рдЕрджреНрд╡рд┐рддреАрдп рдирд╣реАрдВ рдХрд╣ рд╕рдХрддреЗ?
@dperrymorrow рдЙрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдмрд╛рд╣рд░ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реЛрдЪреЗрдВ рдФрд░ рдПрдХ рдФрд░ рд╕рдВрдкрддреНрддрд┐ рдЬреЛрдбрд╝реЗрдВ ред
рдареАрдХ рд╣реИ, рдорд┐рд▓ рдЧрдпрд╛, рдХреНрд╖рдорд╛ рдХрд░реЗрдВ ... рдореИрдВ рдЬреБрдЭрд╛рд░реВ рд╣реЛрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рдмрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЖрдИрдбреА _.uniqWith
рд╕рдорд╛рд░реЛрд╣ рдкрд░ рдПрдХ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рд╕рдмрдорд┐рдЯ рдХрд░рдирд╛ рдкрд╕рдВрдж рд╣реИред
рдХреЛрдИ рдЪрд┐рдВрддрд╛ рдирд╣реАрдВ, рд╡рд╣ рд░реЗрдб рд╣реЛрдЧрд╛ред
_.intersectionwith, _.differenceWith, _.unionWith, рдФрд░ _.uniqWith
рдЪрд╛рд░ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдврд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реЛрдЧрд╛?
@jashkenas
рдЪрд╛рд░ рдирдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдврд╛рд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рд╣реЛрдЧрд╛?
рд╣рд╛рдВ, рдпрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓рддрд╛рдПрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ _.uniq
рдЬреИрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреБрдирд░рд╛рд╡рд░реНрддрдХ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреА рд╣реИрдВ рдФрд░ рдмрд╛рдЗрдирд░реА/рд╕реЙрд░реНрдЯ рдХрд┐рдП рдЧрдП рдЦреЛрдЬ рдЭрдВрдбреЗ рдФрд░ рд╕рдВрджрд░реНрдн рдкреИрд░рд╛ рдХреЗ рд▓рд┐рдП рднреА рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЕрддреНрдпрдзрд┐рдХ рдУрд╡рд░рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдПрд░рд┐рдЯреА рд╕реВрдБрдШрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЬреЛ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЪрддреБрд░ рд▓рдЧрддрд╛ рд╣реИред рдпрд╣ рднрд╡рд┐рд╖реНрдп рдХреЗ рдореЙрдбрд░реНрдирд╛рдЗрдЬреЗрд╢рди рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рднреА рдЬрдЯрд┐рд▓ рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╣реА рдмрд┐рдВрджреБ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реА рд╡реИрдХрд▓реНрдкрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдмрдВрдбрд▓ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдареАрдХ рд╣реИ, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдбрд┐рдЬрд╛рдЗрди рдореБрджреНрджрд╛ред рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рддреБрд▓рдирд┐рддреНрд░ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдареАрдХ рд╣реИ рддреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рддреБрд▓рдирд╛ рдлрд╝рдВрдХреНрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдпрд╣рд╛рдВ рдЬрд╛рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рд╣реИрдВ?
рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдВ рдЕрдкрдиреЗ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред
рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХрдорд╛рддреНрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣рд┐рд╕реНрд╕рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдереЛрдбрд╝рд╛ рдФрд░ рдмрд╛рд▓реЛрдВ рд╡рд╛рд▓рд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд
_.uniq = _.unique = function(array, isSorted, iteratee, context) {
if (!_.isBoolean(isSorted)) {
context = iteratee;
iteratee = isSorted;
isSorted = false;
}
//...
рд╢рд╛рдпрдж рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреЗрдХ рдЬреЛрдбрд╝рдирд╛ рдХрд┐ _.isFunction
рд╕реЙрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдлрд┐рд░ рдЗрд╕реЗ рддреБрд▓рдирд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рджреЗрдЦреЗрдВред
@jashkenas
рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рддреБрд▓рдирд┐рддреНрд░ рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рдорд╣рд╕реВрд╕ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рдЦрд░рд╛рдм рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрддрд┐рднрд╛рд░рд┐рдд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рдХрд┐рдХ рдкрд░ рдЪрд▓рд╛ рдЧрдпрд╛ рд╣реВрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рд╕реЗ рдмрд╣реБрдд рдЦреБрд╢ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдПрдкреАрдЖрдИ рд╕рддрд╣ рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИ, рдпрд╣ maxBy
, uniqBy
, pickBy
, рдпрд╛ uniqWith
, unionWith
рдЬреИрд╕реА рд╕рдорд╛рди рдереАрдо рд╡рд╛рд▓реА рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд░рд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдФрд░ рд╕рдореВрд╣реАрдХрд░рдг рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред zipWith
, рдпрд╛ sortedIndexBy
, sortedIndexOf
, sortedUniq
ред uniq
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рдЕрднреА рднреА рдПрдХ рд╕рд╛рдЭрд╛ рдЖрдзрд╛рд░ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред
рдЗрд╕ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрджреНрдпрддрди рдХрд┐рдпрд╛ рд╣реИ #2368 рдзрдиреНрдпрд╡рд╛рджред
рдореИрдВ :+1: uniqBy
рдпрд╛ uniqWith
рд▓рд┐рдП рд╣реВрдВред рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ uniq
рдЖрдЧреЗ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рдЦрд┐рд▓рд╛рдл рд░рд╣реВрдВрдЧрд╛ (рдЬреИрд╕рд╛ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ #2368 рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ)
:+1: @megawac , uniqBy
ред
Fwiw lodash рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ uniqBy
рдмрд╛рд╣рд░ рдХреЗ рд░реВрдк рд╡рд┐рднрд╛рдЬрди рдХреЗ рд░реВрдк рдореЗрдВ _.uniq(array, iteratee)
рдФрд░ _.uniqWith
рдлрд╛рд░реНрдо рдХреЗ рд░реВрдк рдореЗрдВ рддреБрд▓рдирд┐рддреНрд░ рдЕрдиреБрдХреВрд▓рди рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдПред
рд╣рд╛рдБ, рджреВрд╕рд░реЗ рд╡рд┐рдЪрд╛рд░ рдкрд░ uniqWith
рдПрдХ рдмреЗрд╣рддрд░ рдирд╛рдо рд╣реИ
рдХреНрдпрд╛ рдореБрдЭреЗ рд▓реЛрджрд╛рд╢ рдкрд░ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдБ?
@dperrymorrow
рдХреНрдпрд╛ рдореБрдЭреЗ рд▓реЛрджрд╛рд╢ рдкрд░ рдЕрд▓рдЧ рд╡рд┐рдзрд┐ рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
рдХреЛрдИ рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рд╡реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд▓реЙрд╢ рдХреЗ рдХрд┐рдирд╛рд░реЗ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛ рдореЗрдВ рд╣реИрдВред
рдореБрдЭреЗ рд▓рдЧрд╛ рдХрд┐ рджреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХрд╛ рд╡рд┐рд▓рдп рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдЧрд▓рдд рд╣реВрдБ?
рдЕрднреА рдирд╣реАрдВред рд▓реЛрдбрд╛рд╢ v4 рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд┐рд▓рдп рдХреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рдорд╛рдг рджреЗрддрд╛ рд╣реИред
@jdalton рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдЕрдиреНрдп рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде _.uniqWith
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВред
@рдкрд╡рдиреА
рдЬрд╝рд░реВрд░ред рдЖрдк lodash/npm/_baseUniq рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
рдпрджрд┐ рдХреЛрдИ comparator
рдкрд╛рд╕ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╡рд╣ arrayIncludes
(рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдХреЗ contains
) рдХреЗ рдмрдЬрд╛рдп рдЪреЗрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП arrayIncludesWith
рд╕рд╣рд╛рдпрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
@jdalton рдЬреЛ рдореЗрд░реА рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕ рдереНрд░реЗрдб рдиреЗ рдореБрдЭреЗ
_.intersectionWith
,_.differenceWith
,_.unionWith
, рдФрд░_.uniqWith
рдХреЛ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рддреБрд▓рдирд╛ рдЕрдиреБрдХреВрд▓рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред