`
Baby真卑鄙
  • 浏览: 9843 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

POS-V0.2

 
阅读更多

需求描述

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

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

输入格式(样例):

[
    'ITEM000000',
    'ITEM000000',
    'ITEM000000',
    'ITEM000000',
    'ITEM000000',
    'ITEM000001',
    'ITEM000001',
    'ITEM000004'
]

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

清单内容(样例):

***<没钱赚商店>购物清单***
名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)
名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)
名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)
----------------------
总计:23.00(元)
**********************

作业要求

  1. main.js文件中编写实现代码并确保测试通过;
  2. 请在保证代码可读性的前提下,尽可能用最少的代码行数完成作业;
  3. 将清单输出到控制台,使测试通过 注意:所有的标点符号均为英文符号

作业提示

  1. 学会遍历查找内容
  2. 使用console.log输出(仅允许使用一次)

答案:

1.把loadAllItems()函数赋给变量allItems,获取所有商品的信息;遍历inputs数组,再遍历allitems,然后判断它们的barcode是否相等,把参数allitems放到数组cart_list中:

function printInventory(inputs) { 
    var allItems=loadAllItems();
    var cart_list=[];
    for(var i=0;i<inputs.length;i++){    
        for(var k=0;k<allItems.length;k++){
            if(allItems[k].barcode == inputs[i])     
            {  
                cart_list.push(allItems[k]);    
            }   
        }  
   }

 2.定义数组item_list存放商品信息;遍历数组cart_list;判断item_list的长度是否为零;把参数item放到数组 item_list中。

for(var m=0;m<cart_list.length;m++){
       var item=cart_list[m];
       if(item_list.length==0){
         var count=0; 
         item.count=1;  
         item_list.push(item);
       } 
        else{
              for(var i=0;i<inputs.length;i++){    
                   for(var k=0;k<allItems.length;k++){
                       if(allItems[k].barcode == inputs[i])     
                        {  
                        cart_list.push(allItems[k]);    
                        }   
                  }  
             }
        }
    }

 

 

 3.最后遍历数组item_list,循环遍历输出,再计算商品的总价格,并且打印输出结果

var list='***<没钱赚商店>购物清单***'; 
    var sum=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'+'**********************';  
    return list;
}
    console.log(list); 
}

       在这里,我们要特别注意每个数组所代表的含义。当数组过多时,一定要尽可能的定义到与题意相关的信息,定义时应运用蛇底式或驼峰式进行命名。打代码时应尽量使顺序流畅,可使用function进行声明调用,避免冗杂。每个function都是独立的个体,只会在调用时进行运用。若因代码过多产生细节错误,要先查看是否为语法错误,可运用/*   */进行检验。若无语法错误,再从上到下进行排除法,缩小范围,进行验证。

详情请点击http://www.codefordream.com/courses/js-pos-boot-camp/sections/section_1/practices/normal/practice_3/items/code进行查看。

 

分享到:
评论

相关推荐

    电子-POSV0.2.zip

    压缩包中的“POS_V0.2”很可能是指POS系统的源代码、固件或者配置文件,这些内容可能包括以下几个方面: 1. **源代码**:开发人员编写的程序代码,可能用C或C++等语言编写,用于实现POS系统的业务逻辑,如商品扫描...

    公达pos1200打印机驱动 v0.2.5.2 官方最新版

    公达pos1200驱动是由公达官方为该型号的POS打印机打造的一款驱动程序,用户安装了驱动程序以后,就可以让打印机与电脑顺利的进行连接,轻松完成日常的打印工作,欢迎有需要的朋友下载使用!使用说明P代表并口LPTU...

    iMX6Q核心板配套开发底板ALTIUM设计硬件原理图+PCB+元器件BOM文件.zip

    iMX6Q核心板配套开发底板AD...BAT54HT1G DIODE SCHOTTKY 30V 0.2A SOD323 BGX50AE6327 DIODE SWITCHING 50V SOT-143 BLA2ABB221SN4D FERRITE ARRAY 220 OHM 0804 SMD BLM15AX601SN1D FERRITE CHIP 600 OHM 0402 420mA B

    iMX6 CORTEX-A9双核四核TinyRex 外设开发底板PDF原理图PCB+AD集成封装库.zip

    BAT54HT1G DIODE SCHOTTKY 30V 0.2A SOD323 BGX50AE6327 DIODE SWITCHING 50V SOT-143 BLM15AX601SN1D FERRITE CHIP 600 OHM 0402 420mA BLM18SG221TN1D FERRITE CHIP 220 OHM 2500MA 0603 C1005C0G1H150J CAP CER ...

    iMX6 CORTEX-A9双核四核TinyRex 外设开发底板ALTIUM设计硬件原理图PCB+AD集成封装库.zip

    BAT54HT1G DIODE SCHOTTKY 30V 0.2A SOD323 BGX50AE6327 DIODE SWITCHING 50V SOT-143 BLM15AX601SN1D FERRITE CHIP 600 OHM 0402 420mA BLM18SG221TN1D FERRITE CHIP 220 OHM 2500MA 0603 C1005C0G1H150J CAP CER ...

    飞恒进销存管理系统v7.21(源代码)

    余额为0.2元。 2、报表的反映。分为三个内容:a)消费总金额 b)现金支付金额 realAmount c)卡支付金额(负为客户欠商家的钱),可以保存在pos_bill.cardAmount 2007-9-13 V7.18_4: 7、 Pos_Bill字段说明:billAmt ...

    IMX6Q-HDMI-VGA-LVDS-双网口交换机显示控制板PDF原理图PCB+AD集成封装文件.zip

    BAT54HT1G DIODE SCHOTTKY 30V 0.2A SOD323 C0201 C 0.22uF X7R 16V 10﹪ 0402 CAP C 10uF X7R 50V 10% 1210 CAP TANT 长寿命 220uF 50V ±20% 10x16 -40℃ - 105℃ CM2020-00TR IC HDMI TX PORT P/I 38-TSSOP CON...

    粒子拉线mell

    -w 200 -bgc 0.2 0.2 0.2 -in "coco" CoCo; menu -label "ļ" -tearOff true; menuItem -label "½ļ" -c "wenjian"; ... ``` 以上代码展示了如何创建一个包含菜单栏和其他控件的窗口。通过这些控件,用户可以进行...

    SS6812T-0v3.pdf

    - **电源电压**:VMA、VMB允许范围为-0.2V到42V。 - **逻辑输入电压**:VIN允许范围为-0.2V到5.5V。 - **输出电流(DC)**:最大支持1A的直流输出。 综上所述,SS6812T是一款集高性能、低功耗和高可靠性的步进电机...

    会员管理软件 启新会员管理软件 v1.0.0.2

    总之,启新会员管理软件v1.0.0.2通过集成会员管理、储值充值、积分系统、POS打印和统计报表等功能,为企业提供了一站式的会员管理平台,有助于提升客户服务质量和销售业绩。同时,其可定制化的特点确保了软件能够...

    基于Word2Vec+SVM对电商的评论数据进行情感分析-i

    pos = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/pos.csv',header=None,index_col=None) neg = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/neg.csv',header=None,index_col=None) 导入...

    python基于Word2Vec+SVM对电商的评论数据进行情感分析.zip

    pos = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/pos.csv',header=None,index_col=None) neg = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/neg.csv',header=None,index_col=None) 导入数据,然后...

    RS-232和RS-485接口之 比较

    RS-485的标准逻辑电平为:逻辑一的电平不得低于-200mV,逻辑零的电平不得低于+200mV,电压差最小为0.2V。RS-485使用双绞线作为传输介质,支持全双工操作,最远可以传输超过1200米。RS-485系统中通常需要使用两个终接...

    WEIGHT.m2018年e题的判断矩阵

    w=abs(V(:,pos)); w=w/sum(w); t=D(pos,pos); disp('准则层特征向量w=');disp(w);disp('准则层最大特征根t=');disp(t); %以下是一致性检验 CI=(t-n)/(n-1);RI=[0 0 0.52 0.89 1.12 1.26 1.36 1.41 1.46 1.49 ...

    电脑店免费管理软件

    蓝芯E管家 V2.1.0.2 1.修正退货退款某些接口录入无法打开仓库窗口的BUG. 2.修正售后管理系统维修完成后没有完成时间的bug. 3.完善帮助功能. 4.客户群导出功能. 5.修正超级列表框排序问题. 6.更新统计数据部分功能. 7...

    三星9305收索

    &lt;!..._position:;min-height:100%}#head{padding-bottom:100px;text-align:center;*z-index:1}#ftCon{height:100px;position:absolute;...list-style:none}body,form,#fm{position:relative}td{text-align:left}img{border...

    r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z

    //hv_dbg("framerate: %0.2ffps\n",cap-&gt;cap_fps); } //sync capture info perp x second #define M_SECOND 200 if(is_x_msec(M_SECOND,(long long)(buf.timestamp.tv_sec),(long long)(buf.timestamp.tv_usec)...

    获取top前10个Oracle的进程(支持多实例)

    TCHNO"),'N',NULL,"A2"."SDBATCHNO"),"A2"."SDPROMPRICE" FROM "POS" ."SALEDETAIL"@! "A2" WHERE TO_CHAR("A2"."SDSWAPDATE",'yymmdd')|| SUBSTRB("A2"."SDMKTNO",(-3))||SUBSTRB("A2"."SDPOSNO",(-2))||SUBS TRB...

    西门子MAP使用

    - 当V200.7接通时,Q0.0发出脉冲,V201.0确定方向。 - 触碰到限位开关的上升沿时,会产生方向改变;在下降沿时停止,并将VD128中的数值传送到HC0中。 - 分配库存储区中有许多重要参数,如当前位置(C_Pos)等。 ##...

    基于机器学习SVM和Word2Vec实现购物平台评论数据情感分析python源码(附数据集+详细注释+使用说明+模型).zip

    pos = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/pos.csv',header=None,index_col=None) neg = pd.read_table('E:/NLP/chinese-w2v-sentiment/data/neg.csv',header=None,index_col=None) 导入数据,然后...

Global site tag (gtag.js) - Google Analytics