Я хочу удалить дублированные элементы из массива объектов в React JS. Мой код выглядит следующим образом:Получить элементы uniq из массива объектов
let cars = [
{
id: 1,
make: "Volkswagen",
model: "Golf",
desc: "2.0 CR TDi Comfortline BMT"
}, {
id: 2,
make: "Audi",
model: "Q3",
desc: "2.0 CR TDi Comfortline BMT"
}, {
id: 3,
make: "Volkswagen",
model: "Passat CC",
desc: "2.0 CR TDi Comfortline BMT",
}, {
id: 4,
make: "Volkswagen",
model: "Golf",
desc: "1.9 TDI",
}, {
id: 5,
make: "Audi",
model: "Q5",
desc: "2.0 CR TDi Comfortline BMT",
}, {
id: 6,
make: "Volkswagen",
model: "Golf",
desc: "2.0 CR TDi",
}
]
class Test extends React.Component {
getTotalModels(model){
return cars.filter(c => c.model === model).length;
}
getTotalMakes(make){
return cars.filter(c => c.make === make).length;
}
render(){
return (
<div>
{cars.map(c => {
return (
<div key={c.id}>
<div className="make">{c.make} ({this.getTotalMakes(c.make)})</div>
{cars.filter(j => j.make === c.make).map(i => {
return <div className="models">{i.model} ({this.getTotalModels(i.model)})</div>
})}
</div>
)
})}
</div>
)
}
}
React.render(<Test />, document.getElementById('container'));
результат, который я получаю:
Volkswagen (4)
Golf (3)
Passat CC (1)
Golf (3)
Golf (3)
Audi (2)
Q3 (1)
Q5 (1)
Volkswagen (4)
Golf (3)
Passat CC (1)
Golf (3)
Golf (3)
Volkswagen (4)
Golf (3)
Passat CC (1)
Golf (3)
Golf (3)
Audi (2)
Q3 (1)
Q5 (1)
Volkswagen (4)
Golf (3)
Passat CC (1)
Golf (3)
Golf (3)
Результат, который я хочу это:
Volkswagen (4)
Golf (3)
Passat CC (1)
Audi (2)
Q3 (1)
Q5 (1)
Я попытался с lodash uniq
функции, но Бесполезный Не работай.
Это уникально основано только на марке. Я хочу, чтобы он был уникальным на основе make и модели. – Boky
Плохо, я отредактировал свой ответ. –