JavaScript之 ------ 数组相关知识(轻松玩转js数组)

数组


1、Js中的数组的长度是可以自动增长的

2、Js中的数组的功能相当于Java中的数组和集合的综合

3、var arr=[3,2,-4,78,10];//正确,注意,Java赋初值用的是大括号,而Js用的是中括号

      var arr[]=[3,2,-4,78,10];//错误的,不能声明成arr[]----声明时不能带中括号

4、遍历数组

 <script type="text/javascript">
        arr[0]=100;
        arr[5]=-1;
        //alert(arr.length);//6
        //遍历数组
        for(var x=0; x<arr.length; x++){
        document.write("arr["+x+"]="+ arr[x] +" ");
        }//输出:arr[0]=100 arr[1]=undefined arr[2]=undefined arr[3]=undefined arr[4]=undefined arr[5]=-1
 </script>


5、Js中的 数组当中可以存储不同数据类型的数据

<script type="text/javascript">
            var arr = [34, 56, -1, 100];
            arr[1] = -1;
            arr[2] = true; //语法上是可以的,因为它有集合的特性,各种类型的数据都可以赋给它。
            arr[6] = "Java";//虽然这样,但我们做项目时,一个数组最好放同一种类型的数据。
            //遍历数组
            for (var x = 0; x < 8; x++) {
                document.write("arr[" + x + "]=" + arr[x] + " ");
            }//输出:arr[0]=34 arr[1]=-1 arr[2]=true arr[3]=100 arr[4]=undefined arr[5]=undefined arr[6]=Java arr[7]=undefined
</script>
注:语法上是可以的,因为它有集合的特性,各种类型的数据都可以赋给它。虽然这样,但我们做项目时,一个数组最好放同一种类型的数据。

6、Js中数组的另一种定义方式:使用js当中的Array对象

注:用Array对象定义数组时,参数为1时,是指数组的长度;若大于1时,直接就是数组中的元素初值

var arr2 = new Array(5); //定义长度为5的数组----参数为1时,是长度

var arr3 = new Array(5, 6, 7); //参数大于1时,就是元素的初值


7、Js中Array对象中的方法

1)concat 方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。

2)join 方法:返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。

3)reverse 方法:返回一个元素顺序被反转的 Array 对象。

4)shift 方法: 移除数组中的第一个元素并返回该元素。-----removeFirst()

5)slice 方法 (Array): 返回一个数组的一段。-----类似String中的substring()

6)sort 方法: 返回一个元素已经进行了排序的 Array 对象。

7)splice 方法: 替换。从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。

8)unshift 方法:将指定的元素插入数组开始位置。返回值为新数组的长度----addFirst()

例1:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <title>Array Object Demo</title>
    </head>
    <body>
        <script type="text/javascript" src="..\js1\stringtool.js">
        </script>
        <script type="text/javascript">
            var arr = ["aa", "bb", "cc", "zz", "kk"];
            println(arr.toLocaleString());
            var arr2 = [123, "csdn", true];
            var newArr = arr.concat(arr2);
            //演示concat方法:返回一个新数组,这个新数组是由两个或更多数组组合而成的。
            println(("length:" + newArr.length).fontcolor("red"));
            
            println("<hr/>演示join方法:返回字符串值,其中包含了连接到一起的数组的所有元素,元素由指定的分隔符分隔开来。");
            println(arr.join());
            println(arr.join("-"));
            
            println("<hr/>reverse 方法:返回一个元素顺序被反转的 Array 对象。");
            println(arr);
            println(arr.reverse());
            println(arr);
            
            println("<hr/>shift 方法: 移除数组中的第一个元素并返回该元素。-----removeFirst()");
            println(arr);
            println(arr.shift());
            println(arr);
            
            println("<hr/>slice 方法 (Array): 返回一个数组的一段。-----类似String中的substring()");
            println(arr);
            println(arr.slice(1, 3));
            
            println("<hr/>sort 方法: 返回一个元素已经进行了排序的 Array 对象。");
            arr.sort();
            println(arr);
            
            println("<hr/>splice 方法: 替换。从一个数组中移除一个或多个元素,如果必要,在所移除元素的位置上插入新元素,返回所移除的元素。");
            println(arr);
            var temp = arr.splice(1, 3, "111", "2222", "3333", "444a", 100);//把从[1,3)范围内的元素移除,并且在该位置插入新的元素(后面的那些元素)。返回的是被移除的那些元素
            println("temp: " + temp);
            println("arr: " + arr);
            
            println("<hr/>unshift 方法:将指定的元素插入数组开始位置。返回值为新数组的长度----addFirst()");
            println(arr);
            println(arr.unshift("abc123"));
            println(arr);
        </script>
    </body>
</html>
stringtool.js

      // 模拟Java当中的System.out.print()
      function print(str){
    	  document.write( str);
      }
      
      // 模拟Java当中的System.out.println()
      function println(str){
    	  document.write( str +"<br>");
      }

例2:用array做队列和栈

<!DOCTYPE HTML>
<html>
	<head>
		<title>Array Object Demo</title>
	</head>
	<body>
		<script type="text/javascript" src="..\js1\stringtool.js"></script>
		<!--用array做队列和栈-->
		<script type="text/javascript">
			//栈(加时,加到尾部;出时,也出尾部元素)
      		//入栈,用自己封装的addLast()方法
			Array.prototype.addLast=function(element){
				this[this.length]=element;
			}
			Array.prototype.removeFisrt=function(){ //出队列,用自己的removeFirst()方法----其实是shift()
				return this.shift();
			}
			Array.prototype.removeLast=function(){//出栈,用自己封装的removeLast()方法----其实就是pop()
				return this.pop();
			}
		</script>
	</body>
</html>














评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值