JavaScript之 ------ 数组相关知识(轻松玩转js数组)
Posted 饿狼干爹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
<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>
以上是关于JavaScript之 ------ 数组相关知识(轻松玩转js数组)的主要内容,如果未能解决你的问题,请参考以下文章