Ho una matrice di oggetti che vorrei ridurre in base a una coppia specifica key:value
. Voglio creare un array che include solo un oggetto per questa specifica coppia key:value
. Non importa necessariamente quale oggetto dei duplicati viene copiato nel nuovo array.JavaScript: Rimuovere i duplicati di oggetti che condividono lo stesso valore di proprietà
Ad esempio, voglio tagliare in base alla price
proprietà di arrayWithDuplicates
, la creazione di un nuovo array che include solo una delle ogni valore:
var arrayWithDuplicates = [
{"color":"red",
"size": "small",
"custom": {
"inStock": true,
"price": 10
}
},
{"color":"green",
"size": "small",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"blue",
"size": "medium",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"red",
"size": "large",
"custom": {
"inStock": true,
"price": 20
}
}
];
diventerebbero:
var trimmedArray = [
{"color":"red",
"size": "small",
"custom": {
"inStock": true,
"price": 10
}
},
{"color":"green",
"size": "small",
"custom": {
"inStock": true,
"price": 30
}
},
{"color":"red",
"size": "large",
"custom": {
"inStock": true,
"price": 20
}
}
];
C'è una funzione JavaScript o angolare che passerebbe in loop e fare questo?
MODIFICA: la proprietà da filtrare è nidificata in un'altra proprietà.
possibile duplicato di [Rimuovi duplicati da un array di oggetti in JavaScript] (http://stackoverflow.com/questions/2218999/remove-duplicates-from-an-array-of-objects-in-javascript) –
stai cercando qualcosa come _.map o _.pluck function in underscor e? http://underscorejs.org/#pluck – ncubica