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中声明类(类不是类,是对象):

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         function Person(name, age) {
  3.             this.name = name;
  4.             this.age = age;
  5.             this.SayHello = function () {
  6.                 alert("你好,我是" + this.name + ",我" + this.age + "岁了");
  7.             }
  8.         }
  9.         var p1 = new Person("tom", 20);
  10.         p1.SayHello();
  11.     </script>

必须要声明类名,function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加了。var p1 = Person("tom", 30);//不要丢了new,否则就变成调用函数了,p1为undefined。new 相当于创建了函数的一个实例

7.Array对象


JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         var names = new Array();
  3.         names[0] = "tom";
  4.         names[1] = "jerry";
  5.         names[2] = "lily";
  6.         for (var i = 0; i < names.length; i++) {
  7.             alert(names[i]);
  8.         }
  9.     </script>

输出:分别弹出tom,jerry,lily

无需预先制定大小,动态。

7.1 练习:

求一个数组中的最大值。定义成函数。

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         function getMax(arr) {
  3.             var max = arr[0];
  4.             for (var i = 0; i < arr.length; i++) {
  5.                 if (arr[i] > max) {
  6.                     max = arr[i];
  7.                 }
  8.             }
  9.             return max;
  10.         }
  11.         var arr1 = new Array();
  12.         arr[0] = 12;
  13.         arr[1] = 32;
  14.         arr[2] = 25;
  15.         arr[4] = 12;
  16.         alert(getMax(arr1));
  17.     </script>

7.2 练习:

将一个字符串数组输出为|分割的形式,比如“刘在石|金钟国|李光洙|HAHA|宋智孝|Gary|池石镇”。不要使用JavaScript中的Join函数。arr1.join("|")将数组用分隔符连接成一个字符串。

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         function myjoin(arr) {
  3.             if (arr.length <= 0) {
  4.                 return "";
  5.             }
  6.             var s = arr[0];
  7.             for (var i = 1; i < arr.length; i++) {
  8.                 s = s + "|" + arr[i];
  9.             }
  10.             return s;
  11.         }
  12.         var arr = new Array();
  13.         arr[0] = "刘在石";
  14.         arr[1] = "金钟国";
  15.         arr[2] = "李光洙";
  16.         arr[3] = "HAHA";
  17.         arr[4] = "宋智孝";
  18.         arr[5] = "Gary";
  19.         arr[6] = "池石镇";
  20.         alert(myjoin(arr));
  21.     </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个数。

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         var f = function (arr) {
  3.             for (var i = 0; i < arr.length / 2; i++) {
  4.                 var temp = arr[i];
  5.                 arr[i] = arr[arr.length - i - 1];
  6.                 arr[arr.length - i - 1] = temp;
  7.             }
  8.             return arr;
  9.         }
  10.         var arr = new Array();
  11.         arr[0] = 3;
  12.         arr[1] = "a";
  13.         arr[2] = 8;
  14.         arr[3] = "haha";
  15.         arr[4] = 2;
  16.         arr[5] = 1;
  17.         alert(arr);
  18.         alert(f(arr));
  19.     </script>

还有一种方法:

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         var f = function (arr) {
  3.             var w;
  4.             var s = "";
  5.             for (var i = 0; i < arr.length; i++) {
  6.                 w = arr.length - i - 1;
  7.                 s = s + "," + arr[w];
  8.             }
  9.             return s.substring(1, s.length);//因为第1个s后面跟1个","所以需要截取,
  10.         }
  11.         var arr = new Array();
  12.         arr[0] = 3;
  13.         arr[1] = "a";
  14.         arr[2] = 8;
  15.         arr[3] = "haha";
  16.         arr[4] = 2;
  17.         arr[5] = 1;
  18.         arr[6] = 11;
  19.         alert(arr);
  20.         alert(f(arr));
  21.     </script>

8.JS中的Dictionary


JS中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。

隐藏行号 复制代码 ? 这是一段程序代码。
  1.     <script type="text/javascript">
  2.         var pinyins = new Array();
  3.         pinyins["人"] = "ren";
  4.         pinyins["口"] = "kou";
  5.         pinyins["手"] = "shou";
  6.         alert(pinyins["人"]); //弹出ren
  7.         alert(pinyins.口);   //弹出kou
  8.         for (var k in pinyins) {
  9.             alert(k);       //分别弹出人、口、手   (注意:弹出的是key而不是value)
  10.         }
  11.         var arr = new Array();
  12.         arr[0] = "tom";
  13.         arr[1] = "Jim";
  14.         arr[2] = "Jerry";
  15.         for (var i in arr) {
  16.             alert(i);
  17.         }      //弹出0,1,2,理由同上
  18.     </script>

像Hashtable、Dictionary那样用,而且像它们一样效率高。

for (var k in pinyins) {
            alert(k);       //分别弹出人、口、手   (注意:弹出的是key而不是value)
        }

这是js中的foreach方式运用

课下练习:网页版的火星文翻译。

9.数组、for及其他


对于数组风格的Array来说,可以使用join方法拼接为字符串

隐藏行号 复制代码 ? 这是一段程序代码。
  1. var arr = ["tom", "jim", "lily"];
  2.         alert(arr);
  3.         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及其他...相关推荐

  1. Js面向对象的程序设计——理解对象

    Js面向对象的程序设计 Js面向对象的程序设计 理解对象 属性类型 Js面向对象的程序设计 理解对象 示例 : var person=new Object(); person.name="N ...

  2. javascript java map_javascript实现java的map对象,js实现new map()

    /* * MAP对象,实现MAP功能 * * 接口: * size()     获取MAP元素个数 * isEmpty()    判断MAP是否为空 * clear()     删除MAP所有元素 * ...

  3. JavaScript基础之Array对象和Boolean对象

    2019独角兽企业重金招聘Python工程师标准>>> //数组对象//属性function arr.constructor; //返回数组对象的构造函数int arr.length ...

  4. Scala面向对象基础--类和对象

    一.类和对象介绍 在Scala里,类是用关键字"class"开头的代码定义,它是用于创建对象的蓝图.一个类就是一个类型,不同的类就是不同的类型,一个对象的类型就是创建它用的那个类. ...

  5. Python面向对象基础:设置对象属性

    用类存储数据 类实际上就是一个数据结构,对于python而言,它是一个类似于字典的结构.当根据类创建了对象之后,这个对象就有了一个数据结构,包含一些赋值了的属性.在这一点上,它和其它语言的struct ...

  6. Lua 面向对象基础-类和对象(一)

    目录 1. lua中创建对象 2.lua中定义类的思路 3.元表的概念 4.类的定义和实例化 5. 重写类的方法 lua是一门面向过程的脚本语言,lua语言对于事物.结构通通描述为 table,而类和 ...

  7. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  8. Javascript Array对象

    在javascript中所有的数组都是Array对象.我们可以通过Array类来创建,维护数组. 在javascript中有好几种创建数组的方法 var arr = new Array();   // ...

  9. JavaScript中Array 对象相关的几个方法

    好记性不如烂笔头 push 方法 将新元素添加到一个数组中,并返回数组的新长度值. arrayObj.push([item1 [item2 [. . . [itemN ]]]]) 参数 arrayOb ...

最新文章

  1. word2vec 中的数学原理详解(二)预备知识
  2. 一种在网络层清理机器假死时TCP连接的方案介绍
  3. Codeforces 1196C Robot Breakout
  4. unity3d的执行顺序
  5. 开源的.NET运行剖析器nprof简单使用指引
  6. HttpDNS功能说明及实现
  7. 通过委托增强Spring数据存储库
  8. Linux高性能服务器编程
  9. server2008密码不满足密码策略的要求,检查最小密码长度、密码复杂性和密码历史的要求”的解决办法...
  10. Kube-Proxy IPVS模式源码分析
  11. c语言中memset_C中的memset()
  12. ld: warning: cannot find entry symbol _start; defaulting to 00000000080481d8
  13. python_dataframe总结1
  14. Electron技术架构
  15. 你有必要不沾计算机一段时间英语,八年级英语下册unit 1必背词组及句子(新人教版).docx...
  16. 加州ucla 计算机学校,美国加州大学洛杉矶分校UCLA计算机硕士CS录取
  17. App性能优化:内存优化
  18. CentOS7.2安装配置scylladb
  19. ubuntu 20.04 安装安卓app 使用 anbox
  20. oh-my-zsh提示符显示当前用户名和主机名

热门文章

  1. android:showAsAction=never报错
  2. Fiddler抓包使用教程-会话图标
  3. 抠图+修图+调色+合成+特效Photoshop核心应用5项修炼pdf
  4. Vm-Tools 安装指南
  5. dede 二次开发系统迁移到 IIS 时会出现的问题及解决方案
  6. 判断 多选框是否有选择 适用于批量操作
  7. 实现HttpHandlerFactory的方法
  8. 谷歌宣布推出Dart编程新语言
  9. 如何制作VSPackage的安装程序
  10. 就mysql command line client刚输入密码立马闪一下退出问题的解决方案