計算起始車站車費問題-JavaScript數組對象寫法

計算起始站車費

題目:深圳--60--廣州--50-虎門--40- -中山--36-珠海一34-澳門一89一香港以上車票費用計算,如坐車深圳到廣州60元,廣州到虎門50元,深圳到虎門就是60+50-110元其它以此類推。
請用一個函數,傳入一個起始點,和一個終點,就能計算出車費如傳入起始點虎門,終點澳門就會計算出110元

思考html

  • 咱們首先想一想,如何把每一個站跟票價聯繫起來?
    • 很簡單,咱們把用一個對象存{city,price},每一個站和每一個站到下一站的票價,最後一個站存0,這樣就呈現了必定的規律了。
  • 封裝一個函數,傳一個數組對象,一個始末站的對象
  • 在函數裏面,咱們先檢測一下起始站和終點站是否合理
  • 用indexOf取得下標,而後查看是往哪個方向。
  • 用for循環遍歷數據對象,而後就能夠計算出車費了
  • 運行結果以下圖

如下就是我用js代碼,寫的車票計費問題。數組

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //數組裏存對象
        var array = [
            {city:'深圳', price:0},
            {city:'廣州', price:60},
            {city:'虎門', price:50},
            {city:'中山', price:40},
            {city:'珠海', price:36},
            {city:'澳門', price:34},
            {city:'香港', price:89}
        ];

        var price = cheFei( array , { start : '香港' , end : '虎門'} )
        console.log('香港->虎門')
        console.log(price)
        function cheFei(array , addr ){
            var start_index = end_index = -1;

            for(var i=0; i<array.length ; i++){
                if(addr.start === array[i].city)
                    start_index = i;
                if(addr.end === array[i].city)
                    end_index = i;
            }
            //若是沒找到 地址 ,返回錯誤提示
            if (-1===start_index ||-1===end_index ) 
                return console.error('404 抱歉,未找到您輸入的地址');
            
            var price = 0;
            // start_index < end_index 表示:深圳->香港 方向
            if( start_index < end_index ){
                for( var i=start_index+1; i<=end_index; i++ ){
                    price += array[i].price;
                }
            } else {
                for(var i=start_index; i>end_index; i--){
                    price += array[i].price;
                }
            }

            return price;
            
        }
    </script>
</body>
</html>
相關文章
相關標籤/搜索