Advanced reduce use

by Neviton

HTML

<textarea name="" id="csv" cols="60" rows="10">
Neviton Araujo; Notebook AlienWare; R$ 4.000,00
Neviton Araujo; Shape Element; R$ 200,00
Neviton Araujo; PlayStation 4; R$ 2200,00
Sara Araujo; Tennis Mizuno; R$ 180,00
Sara Araujo; Blusa,;R$ 50,00
Thiago Araujo; Carrinho Azul; R$ 30,00
Vitor Araujo; Carrinho Verde; R$ 30,00
</textarea>

JavaScript

var csv = document.getElementById('csv').value.trim().split('\n'),
	res = csv.reduce(function(result, current, index){
		var columns = current.split(';');
		result[columns[0]] = result[columns[0]] || [];
		result[columns[0]].push({
			item: columns[1].trim(),
			price: columns[2].trim()
		});
		return result;
	}, {});

console.log(JSON.stringify(res, null, 4));