pos机—v0.1

 

 

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
}

 

 

猜你喜欢

转载自sodler.iteye.com/blog/2344275