Javascript价格矩阵数组



我需要根据价格矩阵的宽度和高度计算窗帘价格。如何从数组而不是if语句计算?

function checkPrice() {
        var price = calculatePrice();       
        function calculatePrice(price) {
    var width = parseInt(document.getElementById('customid0').value);
    var height = parseInt(document.getElementById('customid1').value);
            // width up to 100
            if (width <= 100){
            if (height <=50){                           
             price = 67.22;                         
            }
            if (height >50 && height <=100){                            
             price = 103.34;                            
            }
            if (height >100 && height <=130){                           
             price = 133.11;                            
            }
            }
            // width between 101 and 125
            if (width > 100 && width <= 125){
            if (height <=50){                           
             price = 76.69;                         
            }
            if (height >50 && height <=100){                            
             price = 113.01;                            
            }
            if (height >100 && height <=130){                           
             price = 146.05;                    
            }
            }
            // width between 126 and 150
            if (width > 125 && width <= 150){
            if (height <=50){                           
             price = 83.69;                         
            }
            if (height >50 && height <=100){                            
             price = 124.74;                            
            }
            if (height >100 && height <=130){                           
             price = 161.28;                    
            }
            }
                return price;
            }
document.getElementById('product_addtocart_form').action = '<?php echo $this->getAddToCartUrl($_product) ?>&price='+price;
     optionsPrice.changePrice('options', price);
     optionsPrice.reload();  
     Price.changePrice(price);  
}
var width  = parseInt( document.getElementById('customid0').value, 10);
var height = parseInt( document.getElementById('customid1').value, 10);
var conditions = [
        [0, 100, [        // width = 0..100
            [0, 50, [     //     height = 0..50
                67.22     //         price = 67.02
            ]],
            [50, 100, [   //     height = 50..100
                103.34    //         price = 103.34
            ]],
            [100, 130, [  //     height = 100..130
                133.11    //         price = 133.11
            ]]
        ]],
        [101, 125, [      // width = 101..125
            [0, 50, [     //     height = 0..50
                76.69     //         ...
            ]],
            [51, 100, [
                113.01
            ]],
            [101, 130, [
                146.05
            ]]
        ]],
        [126, 150, [
            [0, 50, [
                83.69
            ]],
            [51, 100, [
                124.74
            ]],
            [101, 130, [
                161.28
            ]]
        ]]
    ];
for ( var w = 0, w_len = conditions.length; w < w_len; w += 1 )
{
    if ( width >= conditions[w][0] && width <= conditions[w][1] )
    {
        for ( var h = 0, h_len = conditions[w][2].length; h < h_len; h += 1 )
        {
            if ( height >= conditions[w][2][h][0] && height <= conditions[w][2][h][1] )
            {
                price = conditions[w][2][h][2];
                break;
            }
        }
    }
}

查看此处的提琴

相关内容

  • 没有找到相关文章

最新更新