function printInventory(inputs) { var sum = allsum(inputs) var exa = example(inputs) var title = '***<没钱赚商店>购物清单***\n' for (var i=0;i<exa.length;i++){ //遍历数组组合清单 title = title+'名称:'+exa[i].name+',数量:'+exa[i].number+exa[i].unit+',单价:'+exa[i].price.toFixed(2)+'(元),小计:'+(exa[i].number*exa[i].price).toFixed(2)+'(元)\n' } console.log(title+'----------------------\n总计:'+sum.toFixed(2)+'(元)\n**********************') } function example(inputs){ var barcode_exa = []; var example = [] :evil: :evil: inputs.forEach(function(value){ //遍历数组inputs if (barcode_exa.indexOf(value.barcode) == -1){ value.number=1 //给inputs内的商品信息对象添加属性number:1 example.push(value) //商品信息push进一个空白数组example barcode_exa.push(value.barcode) //条码push进一个空白数组把人从的——exa }else{example[example.length-1].number++} //统计数据自加 (如果这样计数的话前面还要排序一次才行啊) }) :evil: return example } function allsum(inputs){ var sum = 0 for (var i=0;i<inputs.length;i++){ sum += inputs[i].price } return sum //计算总价 }//我想哭 :cry: :cry: :cry: :cry: :cry: :cry:
第三次修改结果:
//TODO: 请补完下面的函数以完成需求.
function printInventory(inputs) { var Items_info = get_Itemsinfo(inputs) //调用函数 var lnventory = title(Items_info) console.log(lnventory) } function get_Itemsinfo(inputs){ //函数,实现获取商品信息包括商品数量 var barcode_exa = []; var example = [] inputs.forEach(function(value){ if (barcode_exa.indexOf(value.barcode) == -1){ value.number=1 example.push(value) barcode_exa.push(value.barcode) }else {example[barcode_exa.indexOf(value.barcode)].number++} //计数方式修改,因为同时推入两个数组所以索引是对应的 }) return example } function title(example){ //计算总价,拼接清单 var sum = 0 var title = '***<没钱赚商店>购物清单***\n' example.forEach(function(one){ sum += one.number*one.price title = title+'名称:'+one.name+',数量:'+one.number+one.unit+',单价:'+one.price.toFixed(2)+'(元),小计:'+(one.number*one.price).toFixed(2)+'(元)\n' }) return title+'----------------------\n总计:'+sum.toFixed(2)+'(元)\n**********************' }我想疯 :D :D :D (直觉告诉我上面一句的return还是有问题要改)
最后一次修改结果:
//TODO: 请补完下面的函数以完成需求. function printInventory(inputs) { var items_info = get_items_info(inputs) var list = title(items_info) console.log(list) } function get_items_info(inputs){ //去重统计数量 var barcode = []; var items_info_count = [] inputs.forEach(function(value){ var i = barcode.indexOf(value.barcode) if (i == -1){ value.number=1 items_info_count.push(value) barcode.push(value.barcode) return } items_info_count[i].number++ }) return items_info_count } function title(example){ var sum = 0 var title = '***<没钱赚商店>购物清单***\n' example.forEach(function(value){ sum += value.number*value.price title = title+'名称:'+value.name+',数量:'+value.number+value.unit+',单价:'+value.price.toFixed(2)+'(元),小计:'+(value.number*value.price).toFixed(2)+'(元)\n' }) var list = title+'----------------------\n总计:'+sum.toFixed(2)+'(元)\n**********************' return list }