声明数组:
/*
数组:
1、数组内可以存放任意类型的数据
2、数组元素不赋值,则为undefined
3、打印数组时,如果某个元素没有赋值,则为“”
4、访问数组范围以外的元素时,不会出现越界异常,为undefined
5、定义的数组大小,依然可以添加更多的元素
*/
//第一种
var arr = new Array();
arr[0] = 123
arr[1] = "abc";
arr[5] = false;
alert(arr[3]);//undefined
alert(arr);//123,abc,,,,false
alert(arr[10]);//undefined,不会出现越界异常
//for in 遍历,未定义的不遍历
for(var i in arr){
alert(arr[i]);
}
//第二种
var arr2 = new Array(2);//规定了数组的长度为2
arr2[0] = "ddd";
arr2[1] = "www";
alert(arr2);//ddd,www
arr2[2] = "fff";//可以再次添加元素,定义的数组大小对此没有影响
alert(arr2);//ddd,www,fff
//第三种
var arr3 = new Array(true,123,false);
alert(arr3);//true,123,false
//第四种,推荐使用
var arr4 = [false,"aaa",123];
alert(arr4);//false,aaa,123
数组操作:
插入,替换,删除。
插入:array.splice(starti,0,值1,值2...);
starti: 在哪个位置插入,原来starti位置的值向后顺移
0:表示删除0个元素,因为插入和替换都是由删除功能拓展的。
值1,值2:需要插入的值
eg:
var array=[1,2,3,4,5];
array.splice(2,0,123,456);
console.log(array);//1, 2, 123, 456, 3, 4, 5
替换:array.splice(starti,n,值1,值2);
原理和插入的用法相同。实际是就是:在starti的位置删除n个元素,然后在这个位置插入值1,值2,就可以起到替换原来被删除的值
eg:
var array=[1,2,3,4,5];
array.splice(2,2,123,456);
console.log(array);//1, 2, 123, 456, 5
删除:array.splice(starti,n);
starti 指的是从哪个位置开始(不包含starti)
n指的是需要删除的个数
eg:
var array=[1,2,3,4,5];
array.splice(3,2);
console.log(array);//1, 2, 3
扩展:
array.push():在数组的末尾追加新n个数据。返回新增数组的长度
array.pop():删除数组的最后一项。返回被删除的那一项内容
array.shift():删除数组的第一项。返回被删除的那一项内容
array.unshift():在数组开始位置追加n个数据,返回新的数组的长度。
array.slice(n,m):查找索引从n(包含n)开始到m(不包含m)处的参数,返回查找到的新数组。
array.concat(arr1,arr2,..):拼接多个数组,返回拼接后的新数组。
array.toString():把数组中数据变成一个以','为分隔符的字符串。
array.join(params):把数组中数据变成一个以params为分隔符的字符串。
array.reverse():返回倒过来排序的数组。
array.sort():返回一个排过序的数组。无参数。
array.indexof/lastIndexof:返回当前值在数据组第一次/最后一次数出现的索引位置。