POS机,第一个自己写的比较完整的js程序,结合以前做题的经验,说一下初学的感受。
大概题意是根据给出的购买商品详情函数实现购物清单的打印。
主要知识点:1,把基本描述转换成程序。2,熟悉循环的使用。
要求的答案格式:(只可以用一次打印)
1***<没钱赚商店>购物清单*** 2名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元) 3名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元) 4名称:电池,数量:1个,单价:2.00(元),小计:2.00(元) 5---------------------- 6总计:23.00(元) 7**********************
分析:第1行是标题,5,6,7行为结尾,2,3,4是循环体。
整体思路:题目整体是function函数内嵌套一个for循环,1456不循环,应该写在函数内循环外,234写在for内,按照顺序一次性打印,1写在for上部,在for内与234的循环体表示公式相加,最后在for的下面加上结尾部分。(怕出错或出错不会检查的可以写一点就用console验证一下是否能出现所写部分的结果)。
我写的结果:(不整洁讲究哈,会变漂亮的!!)
function printInventory(inputs){ var sum=0; var word='***<没钱赚商店>购物清单***'; for(var i=0;i<inputs.length;i++){ word=word+'\n'+'名称:'+inputs[i].name+','+'数量:'+inputs[i].count+inputs[i].unit+','+'单价:'+inputs[i].price+'.00(元)'+','+'小计:'+inputs[i].price*inputs[i].count+'.00(元)'; sum+=inputs[i].price*inputs[i].count; } console.log(word+'\n'+'----------------------'+'\n'+'总计:'+sum+'.00(元)'+'\n' +'**********************'); }
重点是注意顺序会改变结果。
题目函数:
describe('practice-1-1', function () {
var inputs;
beforeEach(function () {
inputs = [
{
barcode: 'ITEM000000',
name: '可口可乐',
unit: '瓶',
price: 3.00,
count: 5
},
{
barcode: 'ITEM000001',
name: '雪碧',
unit: '瓶',
price: 3.00,
count: 2
},
{
barcode: 'ITEM000004',
name: '电池',
unit: '个',
price: 2.0,
count: 1
}
];
});
it('should print correct text', function () {
printInventory(inputs);
var expectText =
'***<没钱赚商店>购物清单***\n' +
'名称:可口可乐,数量:5瓶,单价:3.00(元),小计:15.00(元)\n' +
'名称:雪碧,数量:2瓶,单价:3.00(元),小计:6.00(元)\n' +
'名称:电池,数量:1个,单价:2.00(元),小计:2.00(元)\n' +
'----------------------\n' +
'总计:23.00(元)\n' +
'**********************';
expect(logs[0]).toBe(expectText);
});
});