review一个javascript功能函数 – 琦恒

    近半年来一直觉得自己在技术上好像左右挣扎,技术没啥提升,看书看不进,自学还挺慢。写出来的东西,自己都觉得不满意。让自己也用庸人自扰的感觉。

    最近,在工作中,有一个小小的功能需要实现,这个功能非常简单,其大概功能是:当有一批商品需要促销时,满多少到多少元区间立减多少元,再比较离下一个优惠区间还差多少元,并提示下一区间的优惠价。比如,我这里有个价格优惠区间(满50减5,满100减10,满150减15,满200减20),如果我现在买了120元商品,那么我的提示就应该是:已优惠10,还差30元,可优惠15元。

    这个功能是满简单的,因为优惠的价格区间是变化的,没办法在程序中写死。所以后端的同学就会把这个优惠的价格区间用一种字符格式输出来,我们再进行处理。字符格式如下:

<input type=”hidden” name=”priceRange” value=”50:5,100:10,150:15,200:20″ />

    我是直接把input的value处理成了一个对象{’50’:5, ‘100’:10, ‘150’:15, ‘200’:20}方便我我以后的处理。

    为了能获取价格区间,我创建一个数组用来存放对象的key值,也就是所说的价格区间。

var priceRange = {’50’:5, ‘100’:10, ‘150’:15, ‘200’:20};
function getPrice(num,priceRange) {
var oPrice = priceRange || {},
aPrice
= [],
_pro;

for (_pro in oPrice) {
aPrice.push(_pro);
}
//
}

    接下来就是通过循环这个价格区间找出优惠的价格,并返回一个结果对象。

var priceRange = {’50’:5, ‘100’:10, ‘150’:15, ‘200’:20};
function getPrice(num,priceRange) {
//
for (var i = 0, len = aPrice.length; i < len; i++) {
if (aPrice[0] > num) {
break;
}

if (i === (len – 1)) {
if (aPrice[i] <= num) {
return {
hasPrice: oPrice[aPrice[i]]
}
}
}
else {
if (aPrice[i] <= num && num < aPrice[i + 1]) {
return {
hasPrice: oPrice[aPrice[i]],
price: aPrice[i
+ 1] – num,
youhui: oPrice[aPrice[i
+ 1]]
}
}
}
}
//
}

    上面就是这个功能实现的比较关键的部分,下面看下完整的代码:

var priceRange = {’50’:5, ‘100’:10, ‘150’:15, ‘200’:20};
function getPrice(num, priceRange) {
var oPrice = priceRange || {},
aPrice
= [],
_pro;

for (_pro in oPrice) {
aPrice.push(_pro);
}

for (var i = 0, len = aPrice.length; i < len; i++) {
if (aPrice[0] > num) {
break;
}

if (i === (len – 1)) {
if (aPrice[i] <= num) {
return {
hasPrice: oPrice[aPrice[i]]
}
}
}
else {
if (aPrice[i] <= num && num < aPrice[i + 1]) {
return {
hasPrice: oPrice[aPrice[i]],
// 此价格的优惠价
price: aPrice[i
+ 1] – num, // 此价格离下一个价格的差
youhui: oPrice[aPrice[i
+ 1]] // 离下一个价格的优惠价
}
}
}
}
return {
hasPrice:
0,
price: aPrice[
0] ? aPrice[0] – num : 0,
youhui: aPrice[
1] ? oPrice[aPrice[1]] : 0
}
}

console.log(getPrice(12, priceRange));

    虽然,这个功能的代码写出来了,但是我总觉得那个地方写不好,但是自己却发现不了。所以,写出来,大家帮我code review.看看有没有更好的写法,不要吝惜自己的才华,请在评价那里一展你的风采。

 

 

本文链接:review一个javascript功能函数,转载请注明。



You must enable javascript to see captcha here!

Copyright © All Rights Reserved · Green Hope Theme by Sivan & schiy · Proudly powered by WordPress

无觅相关文章插件,快速提升流量