教学目标
学会把基本描述转换成程序;
熟悉循环嵌套的使用;
需求描述
商店里进行购物结算时会使用收银机(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;
相关推荐
十六进制游戏 v0.1 只是一个测试版。 在 hypnosnova.github.io/HexGame 上玩
Cloudgamer JavaScript Library v0.1 JavaScript 工具库发布.zip
1.2系统标识EOSIO版本号:eosio_2.0.3.编程语言:C++, JavaScript.环境:Ubuntu18.04.需求报告版本:V0.1.1.3系
1.2系统标识EOSIO版本号:eosio_2.0.3.编程语言:C++, JavaScript.环境:Ubuntu18.04.需求报告版本:V0.1.1.3系
Beginning JavaScript with DOM Scripting and Ajax is an essential resource for modern JavaScript programming. This completely updated second edition covers everything you need to know to get up-to-...
beehive.calendar.js v0.1 javascript实现的google日历
POS Project v2POS收银机 版本:v2教学目标熟悉JavaScript的基本语法;熟悉JavaScript的基本逻辑语句及关键字;熟悉JavaScript的面向对象编程;熟悉使用Lo-Dash和moment.js等第三方Javascript库改进编码过程和编码...
专门解码解密eval(function(p,a,c,k,e,r){})、eval(function(p,a,c,k,e,d)...{})等多种eval编码加密的Javascript源代码.暂不支持语法高亮.不支持低版本IE.P.S:该程序是仿制的,非原创!
Sublime 介绍 一个非常简单的为知插件,...主版本:v0.1 CodeMirror版本:v4.12 Todo 完善代码高亮 完善Sublime的快捷键设定 更新日志 2014年08月27日 v0.1发布,上传至为知应用中心。 2015年02月13日 更新Mirror版本。
POS收银机 版本:v1 教学目标 熟悉JavaScript的基本语法; 熟悉JavaScript的基本逻辑语句及关键字; 需求描述 商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品...
POS Project v1POS收银机 版本:v1教学目标熟悉JavaScript的基本语法;熟悉JavaScript的基本逻辑语句及关键字;需求描述商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart...
深入理解JavaScript系列(1):编写高质量JavaScript代码的基本要点 深入理解JavaScript系列(2):揭秘命名函数表达式 深入理解JavaScript系列(3):全面解析Module模式 深入理解JavaScript系列(4):立即调用...
商店里进行购物结算时会使用收银机(POS)系统,这台收银机会在结算时根据客户的购物车(Cart)中的商品(Item)和商店正在进行的优惠活动(Promotion)进行结算和打印购物清单。 已知该商店正在对部分商品进行...
POS Project该项目通过模拟一台POS机(收银机),来锻炼学员JavaScript编程能力。使用方法将该项目Clone到自己的本地电脑上:移除项目文件夹中的.git文件夹;在项目文件夹中使用git init命令重新创建本地Git仓库;...
dynamic-javascript-0.1.zipdynamic-javascript-0.1.zipdynamic-javascript-0.1.zipdynamic-javascript-0.1.zip
POS Project v2POS收银机 版本:v2教学目标熟悉JavaScript的基本语法;熟悉JavaScript的基本逻辑语句及关键字;熟悉JavaScript的面向对象编程;需求描述商店里进行购物结算时会使用收银机(POS)系统,这台收银机会...
oscalendar v0.1 djphil的OpenSim日历v0.1(CC-BY-NC-SA 4.0)
中文名: JavaScript权威指南 (第6版) 原名: JavaScript: The Definitive Guide: Activate Your Web Pages, 6th edition 作者: David Flanagan 版本: 英文文字版-pdf/EPUB + 完整书中源代码 出版社: O'Reilly 书号: ...