多分支不用条件语句行不行
当条件分支很多,还去用 if ... else ... 判断语句去处理问题,不仅显得笨拙,还容易出错,再增加条件时代码就会更冗长。所以,三四个分支可以考虑 if ... else 或 switch 语句,更多分支的可以考虑使用其它解决方案。最近网售一批仔猪,从一个月大到半岁的都有人预定。预定页面要在客户选好后给个预算总价,让客户心里有个数。页面运行的不错,但看了一下代码,用了大量的 switch 语句,虽然逻辑清晰,却看着不舒服。于是我试着这么改写:
function amount(month,total) {
let price = {
1: 100,
2: 120,
3: 180,
4: 240,
5: 300,
6:360,
};
return price * total;
}
函数 amount 就是总价预算,需要两个参数:month,仔猪月龄,total,预定量。
假设客户选取 4 个月大的仔猪 50 头,5个月大的30头,则:
let money = amount(4,50) + amount(5,30);
console.log(money);
这将得出 21000 的结果。
技巧:amount 函数加入了对象 price,price 的每一个键值对巧妙利用仔猪月龄做 key,单价做值,然后通过对象的方法 单价乘以头数返回总价。这么做一方面代码简洁,另一方面修改容易(比如添加其他月龄的仔猪、改变单价等)。
return price * total;
这里的month就直接替换成该月份对应的单价了吧。{:4_204:} 来学习。 红影 发表于 2022-7-19 22:20
return price * total;
这里的month就直接替换成该月份对应的单价了吧。
month是仔猪的月龄 加林森 发表于 2022-7-19 22:52
来学习。
{:4_190:} 马黑黑 发表于 2022-7-19 23:13
谢茶! 本帖最后由 马黑黑 于 2022-7-20 07:58 编辑
红影 发表于 2022-7-19 22:20
return price * total;
这里的month就直接替换成该月份对应的单价了吧。
对象和数组在某些方面有共同的特征,都需要使用key来读取对象项目内容。在数组中,key指下标,比如一个数组,
let ar = ;
读取它的第二个元素内容,key 是 1:console.log(ar);
数组的构造,key 不可见,隐形存在,从 0 开始;对象的 key 则是明摆的:
let 猪 = {
年龄: 1,
体重: 105,
身高: 0.47,
姓名: '阿黑',
性格: '腼腆内向',
爱好: '泡温泉',
};
在上述 猪 这个构建好的对象里,每一个键值对用冒号隔开,左边的是key,右边的是健值。当我们想知道猪这个JS对象的爱好时,我们这样读取:
console.log(猪.爱好);
这会在控制台得到结果 :泡温泉 马黑黑 发表于 2022-7-20 07:57
对象和数组在某些方面有共同的特征,都需要使用key来读取对象项目内容。在数组中,key指下标,比如一个数 ...
嗯嗯,学习了。谢谢黑黑{:4_187:}
这个例子太搞笑了{:4_170:} 红影 发表于 2022-7-20 10:42
嗯嗯,学习了。谢谢黑黑
这个例子太搞笑了
你是说猪对象吧{:4_170:} {:4_174:} 马黑黑 发表于 2022-7-20 12:07
你是说猪对象吧
是啊,猪猪喜欢泡温泉,那明明是人的享受好吧{:4_173:} 红影 发表于 2022-7-20 20:09
是啊,猪猪喜欢泡温泉,那明明是人的享受好吧
山里的猪猪和你城里人一样待遇
马黑黑 发表于 2022-7-20 20:41
山里的猪猪和你城里人一样待遇
这话咋听着那么别扭{:4_173:} 红影 发表于 2022-7-20 22:48
这话咋听着那么别扭
正常的,猪猪并不高人一等 马黑黑 发表于 2022-7-20 22:58
正常的,猪猪并不高人一等
你说反了吧,把人比作猪,等同起来,这太怪了{:4_173:} 红影 发表于 2022-7-21 21:25
你说反了吧,把人比作猪,等同起来,这太怪了
你爱说佛说,佛说过,众生平等 马黑黑 发表于 2022-7-21 21:30
你爱说佛说,佛说过,众生平等
众生平等是对的,但还是各有各的族群和生活习性,这样才有世界的多样性啊。 红影 发表于 2022-7-22 19:44
众生平等是对的,但还是各有各的族群和生活习性,这样才有世界的多样性啊。
多态性才精彩 马黑黑 发表于 2022-7-22 20:06
多态性才精彩
所以,不能把不同种类混做一谈。 红影 发表于 2022-7-22 20:56
所以,不能把不同种类混做一谈。
爱咋咋的