计算起始车站车费问题-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>
计算起始车站车费问题-JavaScript数组对象写法的更多相关文章
- JavaScript数组对象常用方法
JavaScript数组对象常用方法 方法 形式 返回值 是否改变原数组 描述 concat -items: ConcatArray[] 追加之后的数组 否 连接两个或更多的数组,并返回结果.注意 c ...
- javascript数组对象排序
javascript数组对象排序 JavaScript数组内置排序函数 javascript内置的sort函数是多种排序算法的集合 JavaScript实现多维数组.对象数组排序,其实用的就是原生的s ...
- JavaScript 数组对象常用属性
concat() 用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本. var a = ["aa","ccc"]; var b ...
- javascript数组对象
constructor属性 返回数组对象原型 var arr = [1,2,3,4,5]; arr.constructor //输出 function Array() { [native code] ...
- JavaScript 数组对象的去重
JavaScript数组去重 1.原型去重法.通过prototype找到数组的源性对象Array,在数组的原型上添加unique()方法.需要使用的时候使用 点 " . " 进行连 ...
- JavaScript数组对象详情
Array 数组概述 Array 类型是 ECMAScript 最常用的类型.javaScript 中的 Array 类型和其他语言中的数组有着很大的区别. 虽然数组都是有序排列,但 javaScri ...
- javascript 数组对象及其方法
数组声明:通过let arr = new Array(); 或者 let arr = []; 数组对象可调用的方法: 1)find方法,使用情况是对数组进行筛选遍历,find方法要求某个函数(A)作为 ...
- Javascript 数组对象常用的API
常用的JS数组对象API ES5及以前的Api ECMAScript5为数组定义了5个迭代方法,每个方法接收两个参数, 一个是每项运行的函数,一个是运行该函数的作用域对象(可选项),传入这些方法的函数 ...
- 了解JavaScript 数组对象及其方法
数组在我目前学习过的编程语言中都可以见到, 形形色色的方法也数不胜数, 不过功能都一样, 最多也就是方法名稍稍有所不同, 老外也没个准啊, 如果英语比较好的同学对于学习方法(method)来说是很快的 ...
随机推荐
- C++ 消失的析构函数 —— virtual 实现的动态析构
在C++类的结构中可以使用类方法创建内存,使用类的析构函数去施放内存,但有这么一种情况会导致:即使在析构函数中释放了内存,但由于析构函数没有被调用而导致内存泄漏,如下代码. 1 #include &l ...
- 恋爱话术库撩妹至尊VIP版
本软件来自互联网,解锁永久至尊VIP 是一款教你撩妹密语软件.和女生聊天没有话题? 不知道怎么逗乐女生? 女生生气了不会哄? 不知道怎么让女生愿意跟你聊下去? 不知道女生对你有没有意思? 遇到不知道怎 ...
- IDEA 2020.3 更新了,机器学习都整上了
Hello,大家好,我是楼下小黑哥~ 上周 Java 开发申请神器 IDEA 2020.3 新版正式发布: 小黑哥第一时间就在开发机上更新了新版本,并且完整体验了两周了. 下面介绍一下这个版本的主要功 ...
- [日常摸鱼]bzoj2823 [AHOI2012]信号塔
题意:$n$个点,求最小圆覆盖,$n \leq 5e5$ 这题数据是随机的hhh 我们可以先求出凸包然后对凸包上的点求最小圆覆盖-(不过直接求应该也行?) 反正随便写好像都能过- #include&l ...
- pandas的学习4-处理丢失数据
import pandas as pd import numpy as np ''' 有时候我们导入或处理数据, 会产生一些空的或者是 NaN 数据,如何删除或者是填补这些 NaN 数据就是我们今天所 ...
- k8s第二回之k8s集群的安装
1. k8s集群的安装 目录 1. k8s集群的安装 1.架构: 2.环境准备 3.master节点安装etcd 4. master节点安装kubernetes 5.node节点安装kubernete ...
- 302跳转导致的url劫持
介绍一个 网站监测工具:iis7网站监测IIS7网站监控工具可以做到提前预防各类网站劫持,并且是免费在线查询,适用于各大站长,政府网站,学校,公司,医院等网站.它可以做到24小时定时监控,同时它可 ...
- 蒲公英 · JELLY技术周刊 Vol.35: Flash 四宗罪?
蒲公英 · JELLY技术周刊 Vol.35 Flash 曾是 Web 迈向新世代的福音书,它为这个世界带来了缤纷色彩,但也如伊甸园的苹果,闪耀着智慧的光芒,却四灾随行.诞生 1995 年至今 25 ...
- Filezilla账号设置多个文件夹
问题描述 一个账号,使用多个文件目录.虽然可以这样设置,但是实际上客户端使用时只能使用一个目录(主目录). 所以想找一种方式,访问一个主目录时,也可以访问到其他的目录. 官网示例 https://wi ...
- 2.自定义view-QQ运动步数
1.效果 2.实现 2.1自定义属性 在res/values 文件夹中新建xx.xml,内容如下 <?xml version="1.0" encoding="utf ...