Programing

Lodash는 배열에서 중복 제거

crosscheck 2020. 5. 16. 11:11
반응형

Lodash는 배열에서 중복 제거


이것은 내 데이터입니다.

[
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello',
        id: "22"    
    },
    {
        url: 'www.example.com/hello-how-are-you',
        id: "23"    
    },
    {
        url: 'www.example.com/i-like-cats',
        id: "24"    
    },
    {
        url: 'www.example.com/i-like-pie',
        id: "25"    
    }
]

Lodash를 사용하면 중복 ID 키가있는 객체를 어떻게 제거 할 수 있습니까? 필터, 맵 및 고유하지만 확실하지 않은 것.

내 실제 데이터 세트는 훨씬 크고 키가 더 많지만 개념은 동일해야합니다.


_.uniquelodash 4.0.0에 이러한 변경 사항이 있으므로 현재 버전에서는 더 이상 작동하지 않습니다 . 기능적으로 _.uniq, _.sortedUniq, _.sortedUniqBy 및 _.uniqBy로 분할되었습니다.

_.uniqBy어느 쪽이든 사용할 수 있습니다

_.uniqBy(data, function (e) {
  return e.id;
});

또는

_.uniqBy(data, 'id');

설명서 : https://lodash.com/docs#uniqBy


lodash의 이전 버전 (<4.0.0)

데이터가 고유해야 id하고 데이터가 data변수에 저장되어 있다고 가정하면 다음과 같이 unique () 함수를 사용할 수 있습니다 .

_.unique(data, function (e) {
  return e.id;
});

아니면 간단히

_.uniq(data, 'id');

lodash 메소드 _.uniqWith를 사용할 수 있습니다. lodash 4.17.2의 현재 버전에서 사용 가능합니다.

예:

var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];

_.uniqWith(objects, _.isEqual);
// => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]

더 많은 정보 : https://lodash.com/docs/#uniqWith


또는 단순히 배열을 사용하려면 union을 사용하십시오 .


다음과 같이 unionBy 를 4.0.0 이상사용할 수도 있습니다 . let uniques = _.unionBy (data, 'id')


_.uniqBy ()를 사용 하십시오 . 중복없는 버전의 배열을 만듭니다.

이것은 새로운 방법이며 4.0.0 버전에서 사용할 수 있습니다.

_.uniqBy(data, 'id');

또는

_.uniqBy(data, obj => obj.id);

참고 URL : https://stackoverflow.com/questions/31740155/lodash-remove-duplicates-from-array

반응형