I am trying to get the expected results below, but I am struggling. What is the best way to do it?
const data = [{
name: 'Dave',
country: 'England',
color: 'Brown'
},
{
name: 'Dave',
country: 'England',
color: 'white'
},
{
name: 'Cae',
country: 'USA',
color: 'white'
},
{
name: 'Dave',
country: 'England',
color: 'Red'
},
{
name: 'Cae',
country: 'USA',
color: 'Yellow'
},
{
name: 'Dave',
country: 'England',
color: 'white'
},
{
name: 'Manuel',
country: 'USA',
color: 'Red'
},
{
name: 'Dave',
country: 'England',
color: 'white'
}
];
// Tentative:
(function getDataForName() {
count = 0;
nameL = [];
nameCount = [];
for (let i = 0; i < data.length; i++) {
if (nameL.indexOf(data[i].name) === -1) {
nameL.push(data[i].name);
count++;
}
nameCount.push(count);
}
console.log(nameL);
console.log(nameCount);
})()
Expected Results:
nameL = ['Dave', 'Cae', 'Manuel'];
nameCount = [4, 2, 1];