zoukankan      html  css  js  c++  java
  • 计算起始车站车费问题-JavaScript数组对象写法

    计算起始站车费

    题目:深圳--60--广州--50-虎门--40- -中山--36-珠海一34-澳门一89一香港以上车票费用计算,如坐车深圳到广州60元,广州到虎门50元,深圳到虎门就是60+50-110元其它以此类推。
    请用一个函数,传入一个起始点,和一个终点,就能计算出车费如传入起始点虎门,终点澳门就会计算出110元

    思考

    • 我们首先想想,如何把每个站跟票价联系起来?
      • 很简单,我们把用一个对象存{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>
    
  • 相关阅读:
    【JZOJ 4274】【NOIP2015模拟10.28B组】终章-剑之魂
    【JZOJ 4281】【NOIP2015模拟10.29A组】三色树
    【Luogu P2824】[HEOI2016/TJOI2016]排序
    【Luogu P5490】【模板】扫描线
    【Luogu P2502】[HAOI2006]旅行
    【Luogu P1629】 邮递员送信
    【Luogu P4047】[JSOI2010]部落划分
    【Luogu P4071】[SDOI2016]排列计数
    【Luogu P2508】 [HAOI2008]圆上的整点
    【Luogu P1102】A-B 数对
  • 原文地址:https://www.cnblogs.com/lovelyk/p/14295778.html
Copyright © 2011-2022 走看看