1、创建数组
创建数组的方法有多个,我们用自己喜欢的写法就好。在创建数据组的时候,可以是一个空数组,也可以为他指定长度,也可以直接赋值给它。
var arrayObj = new Array(); //创建一个数组
var arrayObj = []; //创建一个数组,和上不同写法
var arrayObj = new Array(5); //创建一个数组并指定长度(5),注意不是上限,是长度
var arrayObj = [1,2,3,4,5]; //创建一个数组并赋值
2、数组属性
数组属性其实指的就是其长度:length。在创建函数的时候可以给它指定长度,也可以在后面获取他的长度。
<script>
window.οnlοad=function () {
var arrayObj = [1,2,3,4,5];
alert(arrayObj.length); //长度为5
arrayObj.length=3;
alert(arrayObj.length);//长度为3
arrayObj.length=0;
alert(arrayObj.length);//长度为0
}
</script>
3、数组对象(重点)
3.1、数组的拼接concat()
Array.concat( ),方法concat()将创建并返回一个新数组,这个数组是将所有参数都添加到array中生成的。它并不修改array。如果要进行concat()操作的参数是一个数组,那么添加的是数组中的元素,而不是数组。
<script>
window.onload = function() {
var a = [1, 2, 3];
a.concat(4, 5) //返回 [1,2,3,4,5]
a.concat([4, 5]); //返回 [1,2,3,4,5]
a.concat([4, 5], [6, 7]) //返回 [1,2,3,4,5,6,7]
a.concat(4, [5, [6, 7]]) //返回 [1,2,3,4,5,[6,7]]
}
</script>
3.2、数组分隔符join()
array.join(separator)
—个字符串,通过把array的每个元素转换成字符串,然后把这些字符串连接起来,在两个元素之间插入separator字符串而生成。
<script>
window.onload = function() {
var arr = [1, 2, 3, 4];
alert(arr.join('- -p'));
}
</script>
3.3、删除数组最后一个元素 pop()
Array.pop( ),方法pop()将删除array的最后一个元素,把数组长度减1,并且返回它删除的元素的值。如果数组已经为空,则pop()不改变数组,返回undefined。
<script>
window.onload = function() {
var arr = [1, 2, 3];
arr.pop();
alert(arr);
}
</script>
3.4、添加数组元素 push()
Array.push( ) ,要添加到array尾部的值,可以是一个或多个。方法push()将把它的参数顺次添加到array的尾部。它直接修改array,而不是创建——个新的数组。方法push()和方法pop()用数组提供先进后出栈的功能。
<script>
window.onload = function() {
var arr = [1, 2, 3];
arr.push(4);
alert(arr);
}
</script>
3.5、颠倒数组元素 severse()
<script>
window.onload = function() {
var arr = [12, 8, 99, 19, 112];
arr.reverse();
alert(arr);
}
</script>
3.6、删除数组第一个元素 shift()
Array.slice( ),方法shift()将把array的第—个元素移出数组,返回那个元素的值,并且将余下的所有元素前移一位,以填补数组头部的空缺。如果数组是空的,shift()将不进行任何操作,返回undefined。注意,该方法不创建新数组,而是直接修改原有的数组。
方法shift()和方法Array.pop()相似,只不过它在数组头部操作,而不是在尾部操作。该方法常常和unshift()一起使用。
方法unshift()将把它的参数插入array的头部,并将已经存在的元素顺次地移到较高的下标处,以便留出空间。
<script>
window.onload = function() {
var arr = [1, 2, 3];
//arr.shift();
arr.unshift(5);
alert(arr);
}
</script>
3.7、任意位置添加、删除、置换数组元素 splice()
array.splice(start, deleteCount, value, ...)
参数:
start
开始插入和(或)删除的数组元素的位置(不是下标)。
deleteCount
从start开始,包括start所指的元素在内要删除的元素个数。这个参数是可选的,如果没有指定它,splice()将删除从start开始到原数组结尾的所有元素。
value, ...
要插人数组的零个或多个值,从start所指的下标处开始插入。
<script>
window.onload = function() {
var arr = [1, 2, 3, 4, 5, 6];
//删除:splice(起点, 长度)
//arr.splice(2, 3);
//插入:splice(起点, 长度, 元素...);
//arr.splice(2, 0, 'a', 'b', 'c');
arr.splice(2, 2, 'a', 'b');
alert(arr);
}
</script>
3.8、数组排序 sort()
数组排序一般都是对字符串和数字就行排序,数字较多(排名)。
<script>
window.onload = function() {
var arr = ['float', 'width', 'alpha', 'zoom', 'left'];
arr.sort();
alert(arr);
}
</script>
数字的排序:方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本。如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序。要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较。
如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字。比较函数应该具有两个参数a和b,其返回值如下:
-
如果根据你的评判标准,a小于b,在排序后的数组中a应该出现在b之前,就返回一个小于0的值。
-
如果a等于b,就返回0。
-
如果a大于b,就返回一个大于0的值。
<script>
var arr = [12, 8, 99, 19, 112];
arr.sort(function(n1, n2) {
if(n1 < n2) {
return -1;
} else if(n1 > n2) {
return 1;
} else {
return 0;
}
});
alert(arr);
</script>
简写:最好先理解一个函数:max()自己写一个比较大小的函数
<script>
function max(n1, n2) {
if(n1 < n2) {
return -1;
}
</script>
示例:
下面的代码展示了如何编写按数字顺序,而不是按字母顺序对数组进行排序的比较函数:
function numberorder(a, b) { return a - b; }// 按照数字顺序排序的排序函数
a = new Array(33, 4, 1111, 222);
a.sort( ); // 按照字母顺序的排序结果为: 1111, 222, 33, 4
a.sort(numberorder); // 按照数字顺序的排序结果为: 4, 33, 222, 1111
3.9、数组元素转换为字符串 toString()
Array.toString( )数组的toString()方法将把数组转换成一个字符串,并且返回这个字符串。当数组用于字符串环境中时,JavaScript会调用这一方法将数组自动转换成一个字符串。但在某些情况下,需要明确地调用这个方法。
toString()在把数组转换成字符串时,首先要将数组的每个元素都转换成字符串 (通过调用这些元素的toString()方法)。当每个元素都被转换成字符串时,它就以列表的形式输出这些字符串,字符串之间用逗号分隔。返回值与没有参数的join()方法返回的字符串相同。
<script type="text/javascript">
var arr = new Array(3)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
document.write(arr.toString())
</script>