js中的数组全部⽅法及⽤法
数组(Array)
数组也是⼀个对象
他和我们普通的对象功能相似,也是⽤来存储⼀些值的
不同的是普通对象是使⽤字符串作为属性名的,⽽数组是使⽤数字作为索引来操作对象
索引:
从零开始的整数就是索引
数组的存储性能⽐普通对象要好,在开发中我们经常使⽤数组来储存⼀些数据
创建数组对象
**语法:**数组[索引] = 值
var arr =new Array();
console.log(arr);//输出"" 空的,因为⾥⾯没有元素
arr[0]=10;
arr[1]=33;
console.log(arr);//输出10,33
使⽤字⾯量创建数组
语法:[]
使⽤字⾯量创建数组时,可以在创建时就指定数组中的元素
使⽤构造函数创建数组时,也可以同时添加元素,将要添加的元素作为构造函数参数传递,元素之间⽤,隔开当只传⼀个数时,字⾯量传的是⼀个元素⽽构造函数传的是数组的元素数量
var arr =new Array();
var arr =[];
console.log(arr);//返回值为空(没有设置元素)
var arr =[1,2,3,4,10];
console.log(arr[4]);//返回值为10
var arr2 =new Array(10,20,30);
console.log(arr2);//返回值为10,220,30(与上⾯的⽅法效果⼀样)
引⽤数组对象
**语法:**数组[索引]
如果读取不存在的索引,不会报错⽽是返回undefined
var arr =new Array();
arr[0]=10;
arr[1]=33;
console.log(arr[1]);//输出33
获取对象长度
可以使⽤length属性来获取数组的长度
对于连续的数组使⽤length可以获取到数组的长度(元素个数)
对于⾮连续的数组,使⽤length会获取到数组的最⼤索引+1尽量不要创建⾮连续的数组,占空间
**语法:**数组.length
var arr =new Array();
arr[0]=10;
arr[1]=33;
console.log(arr.length);//输出2
arr[10]=50;
console.log(arr.length);//输出11
console.log(arr)//[ 10, 33, <8 empty items(8个空的项⽬)>, 50 ]
修改数组
length()
如果修改的length⼤于原长度,则多余部分会空出来
如果修改的length⼩于原长度,则多出部分会被删除
var arr =new Array();
arr[0]=10;
arr[1]=11;
arr[2]=22;
arr[3]=33;
arr.length =10;
console.log(arr.length);//输出10
console.log(arr)//输出[ 10, 11, 22, 33, <6 empty items> ]
arr.length =2;
console.log(arr.length);//输出2
console.log(arr)//输出10,11
向最后的⼀个位置添加元素
var arr =new Array();
arr[0]=10;
arr[1]=11;
arr[2]=22;
arr[3]=33;
console.log(arr.length);//输出4
console.log(arr)//输出10,11,22,33
arr[arr.length]=44;
console.log(arr.length);//输出5
console.log(arr)//输出10,11,22,33,44
数组中的元素可以是任意的数据类型
var arr =new Array();
arr =["hello",true,null,undefined];
console.log(arr)//输出hello,1,true,,
也可以是对象
var obj ={name:"孙悟空"};
arr[arr.length]= obj;
console.log(arr[5].name);//输出孙悟空
也可以是个函数
var arr =new Array();
arr =[function(){alert(1)},function(){alert(2)}];
console.log(arr);//输出function(){alert(1)},function(){alert(2)}
arr[0]();//弹出1
数组中也可以放数组,如下这种数组叫⼆维数组
var arr =new Array();
arr =[[1,2,3],[4,5,6],[7,8,9]];
console.log(arr[0]);//输出1,2,3
push()
该⽅法可以向数组的末尾添加⼀个或多个元素,并返回数组的新的长度
可以将要添加的元素作为⽅法的参数传递,这样这些元素将会⾃动添加到数组的末尾该⽅法会将数组的新长度作为返回值返回
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚"];
arr.push("唐僧");
console.log(arr);//输出孙悟空,猪⼋戒,沙和尚,唐僧
arr.push("蜘蛛精","⽩⾻精");
console.log(arr);//输出孙悟空,猪⼋戒,沙和尚,唐僧,蜘蛛精,⽩⾻精
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚"];
var result = arr.push("蜘蛛精","⽩⾻精","唐僧");
console.log(arr);//输出孙悟空,猪⼋戒,沙和尚,唐僧,蜘蛛精,⽩⾻精
console.log(result);//输出 6
unshift()
向数组开头添加⼀个或多个元素,并返回新的数组长度。
像前⾯插⼊元素以后,其他元素会依次往后推
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚"];
var result = arr.push("蜘蛛精","⽩⾻精","唐僧");
console.log(arr);
arr.unshift("⽜魔王","⼆郎神");
console.log(arr);//输出⽜魔王,⼆郎神,孙悟空,猪⼋戒,沙和尚,唐僧,蜘蛛精,⽩⾻精
pop() shift()
pop(); 删除数组最后⼀个元素,并返回元素的值
shift();删除数组第⼀个元素,并返回元素的值
数组的遍历
⼀般是使⽤for循环来遍历数组
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚"];
var result = arr.push("蜘蛛精","⽩⾻精","唐僧");
for(var i =0; i < arr.length ; i++){
console.log(arr[i]);//输出孙悟空,猪⼋戒,沙和尚,唐僧,蜘蛛精,⽩⾻精
}
js中还提供了了⼀个⽅法,⽤来遍历数组
forEach()
这个⽅法只⽀持ie8以上的浏览器
forEach() ⽅法需要⼀个函数作为参数
像这种函数,由我们创建但是不由我们调⽤的,我们称为回调函数
数组中有⼏个元素函数就会执⾏⼏次,每次执⾏时,浏览器会将遍历到的元素以实参的⾏书传递进来浏览器会在回调函数中传递三个参数
第⼀个参数:当前正在遍历的函数
第⼆个参数:当前正在遍历的元素的索引
第三个参数:正在遍历的数组
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚","蜘蛛精","⽩⾻精","唐僧"];
arr.forEach(function fun(a , b , c){
console.log(a);//输出孙悟空猪⼋戒沙和尚蜘蛛精⽩⾻精唐僧
console.log(b);//输出 0 1 2 3 4 5
console.log(c);//输出[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
//[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
//[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
//[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
//[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
//[ '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' ]
});
slice()
可以⽤来从数组提取指定元素
该⽅法不会改变元素数组,⽽是将截取到的元素封装到⼀个新数组中返回
参数:slice(第⼀个参数,第⼆个参数)
第⼀个参数:截取开始的位置索引(必须写)
第⼆个参数:截取结束的位置索引(可省略,省略后会截取开始往后的所有元素)
索引可以传递⼀个负值,如果传递⼀个负值则从后往前计算-1倒数第⼀个-2倒数第⼆个
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚","蜘蛛精","⽩⾻精","唐僧"];
console.log(arr.slice(0,2));//输出'孙悟空', '猪⼋戒'
console.log(arr.slice(2));//输出'沙和尚', '蜘蛛精', '⽩⾻精', '唐僧'
console.log(arr.slice(-2));//输出'⽩⾻精', '唐僧'
splice()
可以删除或修改、添加数组中的指定元素
使⽤splice会影响到原数组,会将指定元素从原数组中删除,并将被删元素作为返回值
参数 splice(第⼀个参数,第⼆个参数)
第⼀个参数(必写): 开始删除的位置索引
第⼆个参数(必写): 表⽰删除的数量
第三个及以后参数(可不写):可以传递⼀些新的元素,这些元素将会⾃动插⼊到开始位置索引前边
var arr =new Array();
var arr =["孙悟空","猪⼋戒","沙和尚","蜘蛛精","⽩⾻精","唐僧"];
var result = arr.splice(2,2,"⽩龙马","红孩⼉","⽟兔精");
console.log(arr);//输出'孙悟空', '猪⼋戒', '⽩龙马', '红孩⼉','⽟兔精', '⽩⾻精', '唐僧'
console.log(result);//输出'沙和尚', '蜘蛛精'
concat()
可以连接两个或多个数组,并将新的数组返回
该⽅法不会影响原函数
var arr =["孙悟空","猪⼋戒","沙和尚"];
var arr2 =["蜘蛛精","⽩⾻精","唐僧"];
var result = at(arr2,"⽜魔王");
console.log(result);//输出 '孙悟空', '猪⼋戒', '沙和尚', '蜘蛛精', '⽩⾻精', '唐僧' , '⽜魔王'
join()
该⽅法可以将数组转换为⼀个字符串
该⽅法不会对原数组产⽣影响,⽽是将转换后的字符串作为结果返回
在join()中可以指定⼀个字符串作为参数,这个字符串将会成为数组中元素的连接符
var arr =["孙悟空","猪⼋戒","沙和尚"];
console.log(arr.join());//输出孙悟空,猪⼋戒,沙和尚(默认⽤,连接数组内元素)
console.log(arr.join(哈哈));//输出孙悟空哈哈猪⼋戒哈哈沙和尚
reverse()
该⽅法⽤来反转数组(前边去后边,后边去前边)
该⽅法会改变原数组
js数组方法总结sort()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论