javascript - query - Lodash elimina duplicados de la matriz
javascript array select (5)
O simplemente use union , para una matriz simple.
Esta es mi información:
[
{
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"
}
]
Con Lodash, ¿cómo podría eliminar objetos con claves de identificación duplicadas? Algo con filtro, mapa y único, pero no del todo seguro.
Mi conjunto de datos real es mucho más grande y tiene más claves, pero el concepto debería ser el mismo.
Puede usar el método lodash _.uniqWith, está disponible en la versión actual de lodash 4.17.2.
Ejemplo:
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 }]
Más información: https://lodash.com/docs/#uniqWith
Simplemente use _.uniqBy() . Crea una versión libre de duplicados de una matriz.
Esta es una nueva forma y está disponible desde la versión 4.0.0.
_.uniqBy(data, ''id'');
o
_.uniqBy(data, obj => obj.id);
También puede usar unionBy para 4.0.0 y posterior, de la siguiente manera: let uniques = _.unionBy (data, ''id'')
_.unique
ya no funciona para la versión actual ya que lodash 4.0.0 tiene
este cambio radical
.
El funcionalmente se dividió en _.uniq, _.sortedUniq, _.sortedUniqBy, y _.uniqBy
Podrías usar
_.uniqBy
ya sea por
_.uniqBy(data, function (e) {
return e.id;
});
o
_.uniqBy(data, ''id'');
Documentación: https://lodash.com/docs#uniqBy
Para versiones anteriores de lodash (<4.0.0)
Suponiendo que los datos deben ser únicos por
id
y sus datos están almacenados en
data
variable de
data
, puede usar la función
unique()
esta manera:
_.unique(data, function (e) {
return e.id;
});
O simplemente
_.uniq(data, ''id'');