이것은 내 데이터입니다.
[
{
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 키가있는 객체를 어떻게 제거 할 수 있습니까? 필터, 맵 및 고유 한 항목이지만 확실하지 않습니다.
내 실제 데이터 세트는 훨씬 크고 키가 더 많지만 개념은 동일해야합니다.
답변
_.unique
lodash 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을 사용하십시오 .
_.union([1,2,3,3], [3,5])
// [1,2,3,5]
답변
_.uniqBy ()를 사용 하십시오 . 중복없는 버전의 배열을 만듭니다.
이것은 새로운 방법이며 4.0.0 버전에서 사용할 수 있습니다.
_.uniqBy(data, 'id');
또는
_.uniqBy(data, obj => obj.id);
답변
lodash 버전 4 이상에서는 다음과 같이 특정 속성 또는 전체 객체에 의해 중복 객체를 제거합니다.
var users = [
{id:1,name:'ted'},
{id:1,name:'ted'},
{id:1,name:'bob'},
{id:3,name:'sara'}
];
var uniqueUsersByID = _.uniqBy(users,'id'); //removed if had duplicate id
var uniqueUsers = _.uniqWith(users, _.isEqual);//removed complete duplicates
출처 : https://www.codegrepper.com/?search_term=Lodash+remove+duplicates+from+array