zoukankan      html  css  js  c++  java
  • 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中声明类(类不是类,是对象):

    隐藏行号 复制代码 这是一段程序代码。
    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>

    image

    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>

    imageimage

    还有一种方法:

    隐藏行号 复制代码 这是一段程序代码。
    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的方法

    image   tom!jim!lilyimage
    for循环可以像C#中的foreach一样用

    for循环还可以获得一个对象所有的成员,类似于.Net中的反射
    for (var e in document) {
                alert(e);
            }
    有了它没有文档也可以进行开发。

  • 相关阅读:
    SKAction类
    SpriteKit所有的类
    Reachability下载地址
    IOS学习教程
    SpriteKit游戏开发
    APP开发者到期续费说明
    Unique Paths
    Letter Combinations of a Phone Number
    Reverse Nodes in k-Group
    Remove Nth Node From End of List
  • 原文地址:https://www.cnblogs.com/tangge/p/3091526.html
Copyright © 2011-2022 走看看