计算起始站车费

题目:深圳--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>

最新文章

  1. 让PDF.NET支持最新的SQLite数据库
  2. 使用国内 maven 镜像 代替国外 mirror
  3. Python 3 与 MySQL 5.6
  4. CentOS卸载OpenJDK并安装Sun JDK
  5. VMWARE虚拟机CentOS6.4系统使用主机无线网卡上网的三种方法介绍
  6. 解决Django和EasyUI搭配使用时出现的CSRF问题
  7. OpenXml入门----给Word文档添加文字
  8. c语言中通过指针将数值赋值到制定内存地址
  9. WCF入门(十)---WCF事务
  10. [带你飞]一小时带你学会Python
  11. iOS ipv6
  12. www.nygwkt.com
  13. Hdu 2475-Box LCT,动态树
  14. bash: ./configure: 权限不够
  15. freemarker获取封装类中对象的属性
  16. Cpython支持的进程与线程
  17. MySQL练习题1
  18. 使用SpringBoot集成ActiveMQ
  19. Orcal数据库,使用EF的自增处理
  20. Qcreator3.1.2调试器(windows)版本

热门文章

  1. STL——容器(Set &amp; multiset)的查找
  2. Notepad++ 使用步骤,熟练掌握notepad++的使用技巧,无疑会大大提升专业技能。以及快捷键操作
  3. python绘折线图
  4. html+css一些简单案例:爱心点击,盒子模型,2d动画
  5. Mysql技术内幕之InnoDB锁探究
  6. Python(循环语句与数据类型)
  7. C#中未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
  8. Windows7里面怎么实现FTP服务功能
  9. easyui中加载table列表数据 第一次有数据第二次没有数据问题
  10. [leetcode]168. Excel Sheet Column Title表格列名编码(十进制和多进制相互转换)