通过给出的购物清单来实现对小票的打印,进而获得相关的商品数量,小计和总价。
知识点的应用:
通过数组、对象的索引,获取相关信息义字符串的形式,打印出来。
以下为我们的POS机相关代码
给出购物清单以及商品的信息来统计商品的数量小计,进而输出:
[ { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000000', name: '可口可乐', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000001', name: '雪碧', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000001', name: '雪碧', unit: '瓶', price: 3.00 }, { barcode: 'ITEM000004', name: '电池', unit: '个', price: 2.00 } ]
通过构造函数的方式完成POS机的简单打印功能。
function creat_goods_list(inputs){ //统计商品清单的各商品数量, var goods_list={}; //新建对象; for(var i=0;i<inputs.length;i++){ //通过遍历数组inputs构建对象形式的购物清单。 if(goods_list.hasOwnProperty(inputs[i].name)){ //如果对象中已经含有inputs[i] goods_list[inputs[i].name].count++; //直接进行count++ } else{ //若不含有inputs[i] inputs[i].count=1; //给inputs[i]植入count属性并且赋值为1. goods_list[inputs[i].name]=inputs[i]; //定义对象中元素键名为input[i].name 键值为inputs[i] } } return goods_list; //返回值为对象good_list。 } function printInventory(inputs){ //以规定的形式打印。 var goods_object_list=creat_goods_list(inputs) //调用 goods_list var goods_list=""; var total =0; for(var goods_name in goods_object_list){ //利用for循环遍历对象进行字符串的拼接 total+=goods_object_list[goods_name].count*goods_object_list[goods_name].price; goods_list+="名称:"+goods_name+",数量:"+goods_object_list[goods_name].count+goods_object_list[goods_name].unit+",单价:"+goods_object_list[goods_name].price+".00(元),小计:"+goods_object_list[goods_name].count*goods_object_list[goods_name].price+".00(元)\n" } var goods_list_title="***<没钱赚商店>购物清单***\n"; var goods_list_late="----------------------\n总计:"+total+".00(元)\n**********************"; goods_list=goods_list_title+goods_list+goods_list_late; console.log(goods_list) //输出打印商品清单 }
形式如下:
***<没钱赚商店>购物清单*** 名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元) 名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元) 名称:电池,数量:1个,单价:2.00(元),小计:2.00(元) ---------------------- 总计:23.00(元) **********************
总结:
利用面向过程构造函数的方法实现pos机功能,通过遍历购物清单构造新的对象存储商品信息.