简单pos机

      POS Project v0.1

codefordream POS收银机 版本:v0.1

本题链接http://www.codefordream.com/courses/js-pos-boot-camp/sections/section_1/practices/normal/practice_2/items/code

题意主要是根据给出的数据通过函数完成各个小功能然后调用到主函数完成任务。

function printInventory(inputs) {
	var goods_list=get_items(inputs);
	var goods_info=get_inventory(goods_list);
	var print_info=get_goods_info(goods_info);
	console.log(print_info);
}
function get_items(inputs){
    var items=[];//定义购物车
    var barcodes={};//barcode数组
    inputs.forEach(function(input){
        if(barcodes[input.barcode]){//!=undefined
           barcodes[input.barcode]+=1; 
        } else {
            barcodes[input.barcode]=1;
            items.push(input);
        }
    });
    return {barcodes_list:barcodes,item_list:items};
}
function get_inventory(goods_list){
    goods_list.item_list.forEach(function(item_tmp){
        if(goods_list.barcodes_list[item_tmp.barcode]){
            item_tmp.count=goods_list.barcodes_list[item_tmp.barcode]
        }
    });
    return goods_list.item_list
}
function get_goods_info(goods_info){
    var list='***<没钱赚商店>购物清单***';
    var sum=0;
    goods_info.forEach(function(goods){
        var sum_tmp=goods.count*goods.price;
        list=list+'\n'+'名称:'+goods.name+',数量:'+goods.count+goods.unit+',单价:'+goods.price.toFixed(2)
        +'(元),小计:'+sum_tmp.toFixed(2)+'(元)';
        sum+=sum_tmp;
    });
    return list+'\n'+'----------------------'+'\n'+'总计:'+sum.toFixed(2)+'(元)'+'\n'+'**********************'
}

 相比于第一个版本,相当于增加了一项数据合并。

本题用到的知识点主要有:

1.forEach

inputs.forEach(function(input){
....
});

 相当于

for(i=0;i<inputs.length;i++){
.....
}

 inputs是被循环的项,input相当于inputs(i),forEach的E要大写。

2.增加键值

item.count=1;

 这样就为item增加了一个count项,值为1.

3.push为数组增加对象

shopping={a,b,d};
shopping.push(c);
//shopping={a,b,d,c}

 4.函数的调用

在主函数中直接调用函数名加参数即可完成调用,可以调用前面或后面位置的。

function a(b){
var c=d(e);
console.log(c);
}
function d(e){
e=100;
}
//输出100

 

 

你可能感兴趣的:(Web,POS机)