javascript数组

来源:互联网 发布:淘宝高仿椰子 编辑:程序博客网 时间:2024/05/17 23:13

这里写图片描述
数组是值的有序集合。每个值叫做一个元素,而每个元素在数组中有一个位置,以数字表示(从0开始),称为索引,整个数组用方括号表示。

javascript数组的索引是基于零的32位数值,第一位索引是0,最大的索引为2^32-1

1.创建数组

下面我们用2种方式创建数组

1. 数组字面量

1.一维数组

var empty = [];               //空数组var primes = [2,3,5,7,11];    //有5个数值的数组var arr = ['Nunnly',123,true];//3个不同类型的元素和结尾的逗号

2.多维数组

var arr = [[0,1],[2,3],[4,5]];

2.构造函数

1.一维数组

var arr = new Array();    //空数组,等同于数组字面量var arr = new Array(100); //指定长度数组,元素值为undefined,索引属性未定义var arr = new Array(true,null,5,4,3,"testing");//指定元素数组

2.多维数组

var arr = new Array([0,1],[2,3],[4,5]);//new可以省略

2.基本操作

1.读写数组元素

var arr = [1,2]arr[0]  //1arr[1]=3;  // [1,3]

2.添加元素(两种方法)

1.为最后一个空位赋值

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers[10] = 10; //var numbers = [0,1,2,3,4,5,6,7,8,9,10];

2.在数组末尾添加元素,用push方法

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers.push(10,11);//var numbers = [0,1,2,3,4,5,6,7,8,9,10,11];

3.在数组首位添加元素,用unshift方法

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers.unshift(-2);//var numbers = [-2,0,1,2,3,4,5,6,7,8,9];

3.删除元素

1.删除数组第一个元素,用shift方法

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers.shift();//var numbers = [1,2,3,4,5,6,7,8,9];

2.删除数组最后一个的元素,用pop方法

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers.pop();//var numbers = [0,1,2,3,4,5,6,7,8];

3.删除和添加数组中任意位置的元素,用splice方法

var numbers = [0,1,2,3,4,5,6,7,8,9];numbers.splice(5,3);//删除 var numbers = [0,1,2,3,4,8,9];numbers.splice(5,0,2,3,4);//添加var numbers = [0,1,2,3,4,2,3,4,8,9];

4.遍历数组

我们可以使用for循环、while循环、for..in或者forEach()方法来遍历数组

var a = [1, 2, 3];   for(var i = 0; i < a.length; i++) {     console.log(a[i]);  }//whilevar i = 0;  while (i < a.length) {     console.log(a[i]);     i++;  }//for..infor (var i in a) {      console.log(a[i]);    }//forEacha.forEach(function(v){  console.log(v);})

3.数组属性

1.constructor 属性返回对创建此对象的数组函数的引用。

var test=new Array();if (test.constructor==Array){document.write("This is an Array");}if (test.constructor==Boolean){document.write("This is a Boolean");}if (test.constructor==Date){document.write("This is a Date");}if (test.constructor==String){document.write("This is a String");}

2.length 属性可设置或返回数组中元素的数目。

var numbers = [0,1,2,3,4,5,6,7,8,9];document.write(numbers.length);//数组长度为10numbers.length = 20;document.write(numbers.length);//数组长度为20

3.prototype 属性使您有能力向对象添加属性和方法。

4.数组方法

1.concat() 方法用于连接两个或多个数组。

var arr = new Array(3)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"var arr2 = new Array(3)arr2[0] = "James"arr2[1] = "Adrew"arr2[2] = "Martin"document.write(arr.concat(arr2));

子数组 1.splice 2.slice
2.slice() 传入索引值,将数组里对应索引范围内的元素作为新数组返回

var arr = new Array(6)arr[0] = "George"arr[1] = "John"arr[2] = "Thomas"arr[3] = "James"arr[4] = "Adrew"arr[5] = "Martin"document.write(arr + "<br />");document.write(arr.slice(2,4) + "<br />");document.write(arr);

数组排序 1.reverse 2.sort
3.reverse() 方法用于颠倒数组中元素的顺序。

var arr = [1,2,3,4,5,6];document.write(arr.reverse());//var arr = [6,5,4,3,2,1];

4.sort() 方法用于对数组的元素进行排序。

var arr = [33, 4, 1111, 222];arr.sort(); //字母表顺序: 1111, 222, 33, 4arr.sort(function (a, b) {//数值顺序:4, 33, 222, 1111    return a-b;           //根据顺序,返回负数、0、正数});arr.sort(function(a, b) {return b - a});

5.toStriing()和toLocaleString()方法可把数组转换为字符串,并返回结果。

var arr = [George, John, Thomas];//创建一个数组document.write(arr.toString());//生成'George, John, Thomas'document.write(arr.toLocaleString()); //生成'George, John, Thomas'

6.join() 方法用于把数组中的所有元素放入一个字符串。

var a = [1,2,3];var b =a.join(" ");//"1 2 3"var c = new Array(10);var d = c.join('-');//"---------"

7.indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。

var a = [0,1,2,1,0];var b = a.indexOf(2);document.write(b);//2
1 0
原创粉丝点击