JavaScript ordenando y agrupando elementos en una matriz

Estoy tratando de hacer un mapeo en JavaScript. Lo que intento hacer es intentar verificar si el tipo dearr existe endatasetarr, si existiera, obtengo el índice endatasetarr e incrementar la cantidad de ese índice. Si no existe, agrego una nueva entrada endatasetarr. Aquí está mi código:

var datasetarr = [];
var pos;
for(var i = 0; i < arr.length; i++){
    console.log('unsorted ' + arr[i].type + ' ' + arr[i].quantity);
    if(datasetarr.indexOf(arr[i].type) > -1){
        pos = datasetarr.indexOf(arr[i].type);
        datasetarr[pos].quantity += arr[i].quantity;
    }else{
        datasetarr.push({type: arr[i].type, quantity: arr[i].quantity});
    }
}

for(var i = 0; i < datasetarr.length; i++){
    console.log('sorted ' + datasetarr[i].type + ' ' + datasetarr[i].quantity);
}

La salida debe ser:

kitchen appliance 20
home entertainment 8
batteries & lightings 4
home appliance 12

Luego, puedo obtener el tipo y la cantidad de cada uno y almacenarlos en una matriz para que yo pueda trazar con el gráfico.

Sin embargo, con mi código anterior, lo que obtengo es exactamente lo mismo que el no ordenado. ¿Alguna idea de qué parte de mi lógica salió mal?

Respuestas a la pregunta(5)

Su respuesta a la pregunta