__.unionμ κ°μ²΄ λ°°μ΄μ μ λ¬ν λ νμ μ€λ³΅μ μμ±ν©λλ€.
μ: _.union( [ { a:1 } ], [ { a:1 } ])
λ [ { a:1 }, { a:1 } ]
λ°νν©λλ€.
λ°λλ‘, λ°μ€ μ체μ isEqual ν¨μλ ν΄λΉ κ°μ²΄κ° λμΌνλ€λ κ²μ μλ €μ€λλ€. μ¬μ©ν νλ± λΉκ΅λ₯Ό μ§μνλ νλκ·Έ/μ΅μ μ΄λ λΉκ΅κΈ°λ₯Ό μ λ¬νλ μ΅μ μ κ°μ§ μ μμ΅λκΉ?
λλ κ·Έκ²μ΄ μ΄λ―Έ λΉκ΅ κΈ°λ₯μ νμ©νμ§ μλλ€λ κ²μ λλμ΅λλ€. :+1:
μ΄κ²μ΄ μ°¨μ΄, κ΅μ°¨, κ³ μ λ±κ³Ό κ°μ λ€λ₯Έ λͺ¨λ λ°°μ΄ κ³μ° ν¨μμ μ μ©λλ€λ μ μ μ§μ ν κ°μΉκ° μμ΅λλ€.
κ°μ²΄μ λν΄ λ€λ₯Έ λλ± λΉκ΅κΈ°λ₯Ό μ¬μ©ν μ μλλ‘ μ 체 λ°°μ΄ ν¨μ μ νκ΅°μ μ λ°μ΄νΈν μ μλ€λ©΄ μ’μ κ²μ λλ€.
_.union() ν¨μμ μ λ¬ν μ μλ λΆμΈ 맀κ°λ³μ κ°μ κΈ°λ°μΌλ‘ λλ±μ±μ λΉκ΅νλ μ΅μ μ΄ μλ€λ©΄ λ μ½μ§ μμκΉμ? trueμ΄λ©΄ ν΄λΉ λ°°μ΄μ λͺ¨λ κ°μ²΄λ₯Ό μλμΌλ‘ λΉκ΅ν©λλ€.
μλ₯Ό λ€μ΄ _.union([1, 2, 3, 10, [{a:1}, {a:1}]], true)
, μΆλ ₯ [1,2,3,10, {a:1}]
@amiral84 μλμ. 그건 κ΄λ ¨μ΄ μμ΅λλ€. κ·Έ λμμ μνλ©΄ flattenμΌλ‘ unionμ ꡬμ±νμμμ€.
@michaelficarra κ·ΈλΌ μ κ° μ΄ μ£Όμ μ μμ μ λμ³€λμ? :NS
@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
λμ===
컬λ μ μ κ²½μ°μ μ’μνμ§ μμ΅λλ€μλ€.
λμ μ νμ λμ μκ°μ²λΌ λ€λ¦½λλ€. JSλ λ§μ κ²μ λν΄ ===
λλ SameValueZero
λΉκ΅λ₯Ό μ¬μ©ν©λλ€. μ΄λ¬ν λΉκ΅μμ λ²μ΄λ νμκ° μλ κ²½μ° _.uniqWith
μ κ°μ κ²μ΄ κ°λ₯ν©λλ€.
@jdalton λλΆμ μΈκΈν _opWith ν¨μλ λ΄κ° λ¬μ±νλ €λ κ²μ μ λμ μΌλ‘ μλ²½ν©λλ€. μΆμλ₯Ό ν΅ν΄ μΈμ μ¬μ©ν μ μλμ§ μ μ μμ΅λκΉ?
@jdalton λΉκ΅μ λν μ’μ μ§μ μ΄μ§λ§ μΌλ°μ μΌλ‘ Underscoreκ° κ°μ²΄ κ°μ μ 체 μ°¨μ΄λ₯Ό κ°μ§νλλ‘ νλ λμ 컬λ μ μμ κ³ μ ν ν€λ₯Ό μ¬μ©νμ§ μμ΅λκΉ?
λ€μμ @wilhen01 μ μμ²μ ν΄κ²°νμ§ μμκΉμ _(μνλ κ²λ³΄λ€ λ μ₯ν©νκΈ΄ νμ§λ§)_
_.chain([{ a: 1 }]).union( [{a: 1}]).unique('a').value();
//=> [{a: 1}]
λ€μμ @wilhen01 μ μμ²μ ν΄κ²°νμ§ λͺ»ν κ²μ λλ€(μνλ κ²λ³΄λ€ λ μ₯ν©νκΈ΄ νμ§λ§)
_.uniq
μ΄λ―Έ μ§μνκ³ μμ΅λλ€.
λ€, μ μμ μ
λλ€. μμ μ½λλ νμ¬ κ²μλ λλ‘ μλν©λλ€.
κ²°ν© κ²°κ³Όμ λν ν€λ₯Ό μ¬μ©νμ¬ uniq/uniqueλ₯Ό νΈμΆν μ μμ΅λκΉ?
@dperrymorrow κ·Έ μμμ μ‘°κΈ λ²μ΄λμ λ€λ₯Έ μμ±μ μΆκ°νμμμ€ .
μμμ΄, μμμ΄, λ―Έμ... λ νΈμ μ μ΄μ§ μκ³ κ·Έλ₯ λ¬Έμ λ₯Ό μμ ν μ΄ν΄νκ³ μΆμμ΄. _.uniqWith
ν¨μμ λν pull μμ²μ μ μΆνκ³ μΆμ΅λλ€.
κ±±μ λ§μΈμ.
_.intersectionWith, _.differenceWith, _.unionWith λ° _.uniqWith
4κ°μ μλ‘μ΄ ν¨μλ₯Ό λ§λλ λμ λΉκ΅ ν¨μλ₯Ό μ΅μ’ μΈμλ‘ μ νμ μΌλ‘ μ λ¬ν μ μλλ‘ νλ κ²μ΄ APIκ° λ μ’μ§ μμκΉμ?
@jashkenas
4κ°μ μλ‘μ΄ ν¨μλ₯Ό λ§λλ λμ λΉκ΅ ν¨μλ₯Ό μ΅μ’ μΈμλ‘ μ νμ μΌλ‘ μ λ¬ν μ μλλ‘ νλ κ²μ΄ APIκ° λ μ’μ§ μμκΉμ?
μ, ν μ μμ§λ§ _.uniq
μ κ°μ λ©μλλ μ΄λ―Έ iteratee μ λ¬μ μ§μνκ³ λ°μ΄λ리/μ λ ¬λ κ²μ νλκ·Έ λ° μ»¨ν
μ€νΈ 맀κ°λ³μμ λν μ§μμΌλ‘ κ³ΌλΆνκ° λ§μ΄ 걸리기 λλ¬Έμ 볡μ‘ν©λλ€. μ΄κ²μ μ΄ μν©μ λ무 μ리νκ² λκ»΄μ§λ arity μ€λνμ λμ
νλ κ²μ μλ―Έν©λλ€. μ΄κ²μ λν ꡬνμ λ¨μννκ³ λ³λμ λ°©λ²μΌλ‘ λΆν ν μ μλ λ¨μΌ μ§μ μ λ§μ μ νμ κΈ°λ₯μ λ²λ€λ‘ μ 곡νκΈ° λλ¬Έμ ν₯ν λͺ¨λν λ
Έλ ₯μ 볡μ‘νκ² λ§λλλ€.
λ§μ΅λλ€. μμ ν λΆνν λμμΈ λ¬Έμ μ λλ€. κ·Έλ¬λ λΉκ΅κΈ°λ₯Ό νμ©νκΈ° μν΄ μλ‘μ΄ κΈ°λ₯μ λ§λλ κ²λ μ¬λ°λ₯Έ μ루μ μ²λΌ λκ»΄μ§μ§ μμ΅λλ€.
μ, κ·ΈλΌ μΆκ° λΉκ΅ ν¨μ 맀κ°λ³μκ° μ¬κΈ°λ‘ κ°λ κΈΈμ
λκΉ?
κ·Έλ λ€λ©΄ λ΄ pull μμ²μ μ
λ°μ΄νΈν μ μμ΅λλ€.
λ΄κ° μμνλ μ μΌν κΉλ€λ‘μ΄ λΆλΆμ μμμ μΈκΈν @jdalton μ²λΌ 맀κ°λ³μ ꡬ문 λΆμμ μ’ λ νΈμ΄ λ§μ κ²μΌλ‘
_.uniq = _.unique = function(array, isSorted, iteratee, context) {
if (!_.isBoolean(isSorted)) {
context = iteratee;
iteratee = isSorted;
isSorted = false;
}
//...
μλ§λ isSorted _.isFunction
μΈμ§ νμΈνκΈ° μν΄ μΆκ° κ²μ¬λ₯Ό μΆκ°ν λ€μ μ΄λ₯Ό λΉκ΅κΈ°λ‘ μ²λ¦¬ν μ μμ΅λλ€.
@jashkenas
κ·Έλ¬λ λΉκ΅κΈ°λ₯Ό νμ©νκΈ° μν΄ μλ‘μ΄ κΈ°λ₯μ λ§λλ κ²λ μ¬λ°λ₯Έ μ루μ μ²λΌ λκ»΄μ§μ§ μμ΅λλ€.
κ·Έκ²μ λμ μν©μ λν μ΅μ μ μ νμ΄ λ μ μμ΅λλ€. λλ μ΅κ·Όμ κ³ΌλΆνλ κΈ°λ₯μ λΆλ¦¬νκΈ° μμνκ³ κ·Έ κ²°κ³Όμ κ½€ λ§μ‘±νμ΅λλ€. API νλ©΄μ μ¦κ°μν€μ§λ§ maxBy
, uniqBy
, pickBy
λλ uniqWith
, unionWith
μ κ°μ μ μ¬ν μ£Όμ μ λ©μλλ₯Ό λ κ°λ¨νκ² κ΅¬ννκ³ κ·Έλ£Ήνν μ μμ΅λλ€ uniqBy
unionWith
, zipWith
λλ sortedIndexBy
, sortedIndexOf
, sortedUniq
. uniq
κ²½μ° νμ¬ κ³΅μ κΈ°λ° κΈ°λ₯μ μ¬μ ν μ¬μ©νκ³ μμ΅λλ€.
μ΄ pull request #2368μ μ λ°μ΄νΈνμ΅λλ€. κ°μ¬ν©λλ€.
μ λ :+1: uniqBy
λλ uniqWith
μ
λλ€. λλ uniq
μΆκ°λ‘ μ€λ²λ‘λ©νλ κ²μ λν΄ μμ ν λ°λν κ²μ
λλ€(νμ¬ #2368μ΄ μ μλ¨)
:+1: @megawac , uniqBy
.
Fwiw lodashλ uniqBy
λ₯Ό _.uniq(array, iteratee)
μ λΆν νμμΌλ‘ μ¬μ©νκ³ _.uniqWith
λ₯Ό λΉκ΅κΈ° μ¬μ©μ μ§μ μ νμ©νλ νμμΌλ‘ μ¬μ©ν©λλ€.
μ, μκ°ν΄λ³΄λ©΄ uniqWith
κ° λ λμ μ΄λ¦μ
λλ€.
κ·Έλ λ€λ©΄ λ³λμ λ°©λ²μΌλ‘ Lodashμμ μμ²μ κ°μ ΈμμΌ ν©λκΉ?
λ νλ‘μ νΈκ° ν©μ³μ§ μ€ μμλλ° μ°©κ°μΈκ°μ?
@dperrymorrow
κ·Έλ° λ€μ λ³λμ λ°©λ²μΌλ‘ Lodashμμ μμ²μ κ°μ ΈμμΌν©λκΉ?
νμ μμ΅λλ€. μ΄λ―Έ lodashμ edge master λΈλμΉμ μμ΅λλ€.
λ νλ‘μ νΈκ° ν©μ³μ§ μ€ μμλλ° μ°©κ°μΈκ°μ?
μμ§. Lodash v4λ λ³ν©μ μμ΄λμ΄ μ€ μΌλΆλ₯Ό μ¦λͺ ν©λλ€.
@jdalton λ€λ₯Έ λ°λ³΅μμ ν¨κ» _.uniqWith
ꡬνμ λν΄ μ’ λ μμΈν μ€λͺ
ν΄ μ£Όμκ² μ΅λκΉ?
@νλΈλ
νμ νλ. lodash/npm/_baseUniq λ₯Ό νμΈν μ μμ΅λλ€.
comparator
κ° μ λ¬λλ©΄ arrayIncludes
(Underscoreμ contains
) λμ arrayIncludesWith
λμ°λ―Έλ₯Ό μ¬μ©νμ¬ κ²μ¬λ₯Ό μνν©λλ€.
@jdalton λμμ΄ λ©λλ€.
κ°μ₯ μ μ©ν λκΈ
μ΄ μ€λ λλ
_.intersectionWith
,_.differenceWith
,_.unionWith
λ°_.uniqWith
λ₯Ό μΆκ°νμ¬ λ΄ μ½λμμ λΉκ΅ μ¬μ©μ μ μλ₯Ό μ²λ¦¬νλλ‘ μκ°μ μ£Όμμ΅λλ€.