Map object into array then output value with jQuery
by aaronk85
JavaScript
var name = ["andrew", "vic", "casey", "andrew", "vic", "casey"];
var job = ["builder", "baker", "dentist", "builder", "baker", "dentist"];
var product = [111, 222, 111, 222, 222, 222];
var qty = [1, 2, 3, 3, 2, 3];
var data = {};
for (i = 0; i < name.length; i++) {
if (!data[name[i]]) {
a = {
"name": name[i],
"job": job[i],
"product": product[i],
"qty": qty[i]
};
a['xtra-' + product[i]] = qty[i];
data[name[i]] = a;
} else {
if (!data[product[i]]) {
data[product[i]]
}
else {
a.qty += +qty[i];
}
a.qty += +qty[i];
a = data[name[i]];
}
// console.log(a);
}
data = $.map(data, function (val, key) {
return val;
});
data.sort();
$.each(data, function (i, val) {
$('body').append(val.name + ' - ' + val.job + ' - (' + val.product + ' - ' + val.qty + ') - ' + (val['xtra-' + val.product]) + '<br>');
});