JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...
6.JS面向对象基础(*)
7.Array对象
7.1 练习:求一个数组中的最大值。定义成函数。
7.2 练习:将一个字符串数组输出为|分割的形式,比如“刘在石|金钟国|李光洙|HAHA|宋智孝|Gary|池石镇”。不要使用JavaScript中的Join函数。arr1.join("|")将数组用分隔符连接成一个字符串。
7.3 练习:将一个字符串数组的元素的顺序进行反转。{"3","a","8","haha"} {"haha","8","a","3"}。不要使用JavaScript中的反转函数。提示: 第i个和第length-i-1个进行交换。定义成函数。myreverse
8.JS中的Dictionary
9.数组、for及其他
6.JS面向对象基础(*)
JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用C#中的类、构造函数的概念,JavaScript中String、Date等“类”都被叫做“对象”,挺怪,方便初学者理解,不严谨。JavaScript中声明类(类不是类,是对象):
<script type="text/javascript">
function Person(name, age) {
this.name = name;
this.age = age;
this.SayHello = function () {
alert("你好,我是" + this.name + ",我" + this.age + "岁了");
}
}
var p1 = new Person("tom", 20);
p1.SayHello();
</script>
必须要声明类名,function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加了。var p1 = Person("tom", 30);//不要丢了new,否则就变成调用函数了,p1为undefined。new 相当于创建了函数的一个实例
7.Array对象
JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。
<script type="text/javascript">
var names = new Array();
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
</script>
输出:分别弹出tom,jerry,lily
无需预先制定大小,动态。
7.1 练习:
求一个数组中的最大值。定义成函数。
<script type="text/javascript">
function getMax(arr) {
var max = arr[0];
for (var i = 0; i < arr.length; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
var arr1 = new Array();
arr[0] = 12;
arr[1] = 32;
arr[2] = 25;
arr[4] = 12;
alert(getMax(arr1));
</script>
7.2 练习:
将一个字符串数组输出为|分割的形式,比如“刘在石|金钟国|李光洙|HAHA|宋智孝|Gary|池石镇”。不要使用JavaScript中的Join函数。arr1.join("|")将数组用分隔符连接成一个字符串。
<script type="text/javascript">
function myjoin(arr) {
if (arr.length <= 0) {
return "";
}
var s = arr[0];
for (var i = 1; i < arr.length; i++) {
s = s + "|" + arr[i];
}
return s;
}
var arr = new Array();
arr[0] = "刘在石";
arr[1] = "金钟国";
arr[2] = "李光洙";
arr[3] = "HAHA";
arr[4] = "宋智孝";
arr[5] = "Gary";
arr[6] = "池石镇";
alert(myjoin(arr));
</script>
7.3 练习:
将一个字符串数组的元素的顺序进行反转。{"3","a","8","haha"} {"haha","8","a","3"}。不要使用JavaScript中的反转函数。提示:
第i个和第length-i-1个进行交换。定义成函数。myreverse
为什么length要除以2:因为
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
已经交换了。一次交换的是2个数。
<script type="text/javascript">
var f = function (arr) {
for (var i = 0; i < arr.length / 2; i++) {
var temp = arr[i];
arr[i] = arr[arr.length - i - 1];
arr[arr.length - i - 1] = temp;
}
return arr;
}
var arr = new Array();
arr[0] = 3;
arr[1] = "a";
arr[2] = 8;
arr[3] = "haha";
arr[4] = 2;
arr[5] = 1;
alert(arr);
alert(f(arr));
</script>
还有一种方法:
<script type="text/javascript">
var f = function (arr) {
var w;
var s = "";
for (var i = 0; i < arr.length; i++) {
w = arr.length - i - 1;
s = s + "," + arr[w];
}
return s.substring(1, s.length);//因为第1个s后面跟1个","所以需要截取,
}
var arr = new Array();
arr[0] = 3;
arr[1] = "a";
arr[2] = 8;
arr[3] = "haha";
arr[4] = 2;
arr[5] = 1;
arr[6] = 11;
alert(arr);
alert(f(arr));
</script>
8.JS中的Dictionary
JS中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。
<script type="text/javascript">
var pinyins = new Array();
pinyins["人"] = "ren";
pinyins["口"] = "kou";
pinyins["手"] = "shou";
alert(pinyins["人"]); //弹出ren
alert(pinyins.口); //弹出kou
for (var k in pinyins) {
alert(k); //分别弹出人、口、手 (注意:弹出的是key而不是value)
}
var arr = new Array();
arr[0] = "tom";
arr[1] = "Jim";
arr[2] = "Jerry";
for (var i in arr) {
alert(i);
} //弹出0,1,2,理由同上
</script>
像Hashtable、Dictionary那样用,而且像它们一样效率高。
for (var k in pinyins) {
alert(k); //分别弹出人、口、手 (注意:弹出的是key而不是value)
}这是js中的foreach方式运用
课下练习:网页版的火星文翻译。
9.数组、for及其他
对于数组风格的Array来说,可以使用join方法拼接为字符串
var arr = ["tom", "jim", "lily"];
alert(arr);
alert(arr.join("!"));//JS中join是array的方法,不像.Net中是string的方法
tom!jim!lily
for循环可以像C#中的foreach一样用
for循环还可以获得一个对象所有的成员,类似于.Net中的反射
for (var e in document) {
alert(e);
}
有了它没有文档也可以进行开发。
JavaScript – 6.JS面向对象基础(*) + 7.Array对象 + 8.JS中的Dictionary + 9.数组、for及其他...相关推荐
- Js面向对象的程序设计——理解对象
Js面向对象的程序设计 Js面向对象的程序设计 理解对象 属性类型 Js面向对象的程序设计 理解对象 示例 : var person=new Object(); person.name="N ...
- javascript java map_javascript实现java的map对象,js实现new map()
/* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * ...
- JavaScript基础之Array对象和Boolean对象
2019独角兽企业重金招聘Python工程师标准>>> //数组对象//属性function arr.constructor; //返回数组对象的构造函数int arr.length ...
- Scala面向对象基础--类和对象
一.类和对象介绍 在Scala里,类是用关键字"class"开头的代码定义,它是用于创建对象的蓝图.一个类就是一个类型,不同的类就是不同的类型,一个对象的类型就是创建它用的那个类. ...
- Python面向对象基础:设置对象属性
用类存储数据 类实际上就是一个数据结构,对于python而言,它是一个类似于字典的结构.当根据类创建了对象之后,这个对象就有了一个数据结构,包含一些赋值了的属性.在这一点上,它和其它语言的struct ...
- Lua 面向对象基础-类和对象(一)
目录 1. lua中创建对象 2.lua中定义类的思路 3.元表的概念 4.类的定义和实例化 5. 重写类的方法 lua是一门面向过程的脚本语言,lua语言对于事物.结构通通描述为 table,而类和 ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- Javascript Array对象
在javascript中所有的数组都是Array对象.我们可以通过Array类来创建,维护数组. 在javascript中有好几种创建数组的方法 var arr = new Array(); // ...
- JavaScript中Array 对象相关的几个方法
好记性不如烂笔头 push 方法 将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2 [. . . [itemN ]]]]) 参数 arrayOb ...
最新文章
- word2vec 中的数学原理详解(二)预备知识
- 一种在网络层清理机器假死时TCP连接的方案介绍
- Codeforces 1196C Robot Breakout
- unity3d的执行顺序
- 开源的.NET运行剖析器nprof简单使用指引
- HttpDNS功能说明及实现
- 通过委托增强Spring数据存储库
- Linux高性能服务器编程
- server2008密码不满足密码策略的要求,检查最小密码长度、密码复杂性和密码历史的要求”的解决办法...
- Kube-Proxy IPVS模式源码分析
- c语言中memset_C中的memset()
- ld: warning: cannot find entry symbol _start; defaulting to 00000000080481d8
- python_dataframe总结1
- Electron技术架构
- 你有必要不沾计算机一段时间英语,八年级英语下册unit 1必背词组及句子(新人教版).docx...
- 加州ucla 计算机学校,美国加州大学洛杉矶分校UCLA计算机硕士CS录取
- App性能优化:内存优化
- CentOS7.2安装配置scylladb
- ubuntu 20.04 安装安卓app 使用 anbox
- oh-my-zsh提示符显示当前用户名和主机名