javascript 之POS收银机 版本:v0.1

 

 

教学目标

学会把基本描述转换成程序;

熟悉循环嵌套的使用;

需求描述

商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)进行结算和打印购物清单。

 

我们需要实现一个名为printInventory函数,该函数能够将指定格式的数据作为参数输入,然后在浏览器的控制台中输出结算清单的文本。

 

输入格式(样例):

[ {barcode: 'ITEM000000',name: '可口可乐',unit: '瓶',price: 3.00},
  {barcode: 'ITEM000000',name: '可口可乐',unit: '瓶',price: 3.00},
  {barcode: 'ITEM000000',name: '可口可乐',unit: '瓶',price: 3.00},
 { name: '可口可乐',unit: '瓶',price: 3.00,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}

 

 

当点击"保存并提交代码"按钮的时候,我们会调用函数printInventory将上面的数据作为参数(inputs)传入该函数。)

清单内容(样例):

 

***<没钱赚商店>购物清单***

名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)

名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)

名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)

----------------------

总计:23.00(元)

********************** 

作业要求

在main.js文件中编写实现代码并确保测试通过;

请在保证代码可读性的前提下,尽可能用最少的代码行数完成作业;

将清单输出到控制台,使测试通过 注意:所有的标点符号均为英文符号

作业提示

学习将重复的内容合并再转化成清单

使用console.log输出(仅允许使用一次)

 main.js

function printInventory(inputs) {
var item;
var item_list=[];    
var list='***<没钱赚商店>购物清单***';
var sum=0;
for(var i=0;i<inputs.length;i++){
 item=inputs[i];/
    if(item_list.length===0){
        item.count=1;
        item_list.push(item);
    }
    else{for(var j=0;j<item_list.length;j++){
        if(inputs[i].barcode==item_list[j].barcode){
           item_list[j].count++;
        }
        else if(j==item_list.length-1){
           POS收银机此题运用了:  1 for循环遍历数组;
                                          2对象中键所对应的值;
                                          3拼接字符串;
            item_list.push(item); item.count=0;
    }
   }
  }  
 }

    for(var n=0;n< item_list.length;n++){
    
    list=list+'\n'+'名称:'+item_list[n].name+','+'数量:'+item_list[n].count+item_list[n].unit+','+'单价:'+item_list[n].price+'.00(元)'+','+'小计:'+item_list[n].count*item_list[n].price+'.00(元)';
     sum+=item_list[n].count*item_list[n].price;
    }

list=list+'\n'+'----------------------'+'\n'+'总计:'+sum+'.00(元)'+'\n'+'**********************';


console.log(list);
}

 

本题与POS收银机 版本:v0很是相似,输入格式有的区别,只要把它的输入格式改变就好解决问题。

使输入格式是相同,创建新的数组。

POS收银机 v0.1此题运用了: 1 for循环遍历数组;

                                                 2对象中键所对应的值;

                                                 3拼接字符串;

                                                 4if else 语句;

                                                5数组的添加 用push;

                          

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值