js操作数组的方法

1、push()

			//将一个或多个元素添加到数组末尾,并返回该数组的长度。此方法修改原有数组。
			var ary1 = [1,2,3,4];
			console.log(ary1.push(5,6,7));//7
			console.log(ary1);// [ 1, 2, 3, 4, 5, 6, 7 ]

2、unshift()

//将一个或多个元素添加到数组的开头,
//返回该数组的新长度。此方法修改原有数组。
var ary2 = [1,2,3,4];
console.log(ary2.unshift(5,6,7));//7
console.log(ary2);// [ 5, 6, 7, 1, 2, 3, 4 ]			

3、pop()

			//从数组中删除最后一个元素,
			//返回该元素的值,如果数组为空,则返回undefined。此方法修改原有数组。
			var ary3 = [1,2,3,4];
			console.log(ary3.pop());//4
			console.log(ary3);// [1, 2, 3]
			var ary33 = [];
			console.log(ary33.pop());//undedined
			console.log(ary33);// []

4、shift()

			//从数组中删除第一个元素,
			//返回该元素的值,此操作修改原数组
			var ary4 = [1,2,3,4];
			console.log(ary4.shift());//1
			console.log(ary4);// [1, 2, 3]
			var ary44 = [];
			console.log(ary44.pop());//undedined
			console.log(ary44);// []		

5、concat()

			//合并两个或多个数组
			//不会更改现有数组,而是返回一个新数组
			var ary51 = [1,2,3,4];
			var ary52 = ['a','b','c'];
			var ary53 = ['甲','已','丙'];
			var ary54 = [];
			console.log(ary51.concat(ary52,ary53,ary54));//[ 1, 2, 3, 4, "a", "b", "c", "甲", "已", "丙" ]
			console.log(ary51);// [1,2,3,4]
			console.log(ary52);// ['a','b','c']
 			console.log(ary53);// ['甲','已','丙']

6、join()

			//将一个数组或类数组对象连接成一个字符串,
			//返回这个字符串。如果数组只有一个元素,那么则返回该元素,而不使用分隔符。(默认使用','分割,如果使用'',则所有元素之间没有分割)
			var ary61 = ['a','b','c'];
			var ary62 = [111];
			var ary63 = [1,2,3];
			console.log(ary61.join());//a,b,c
			console.log(ary62.join());//111
			console.log(ary63.join('-'));//1-2-3
			

7、sort()

			//对数组的元素进行排序。
			//修改原数组。
			var ary71 = [2,3,1];
			console.log(ary71.sort());//[ 1, 2, 3 ]

关于sort函数的使用,详见我的另一篇文章

8、reverse()

			//将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。
			//该方法修改原数组。
			var ary8 = ['a','b','c'];
			console.log(ary8.reverse());//[ "c", "b", "a" ]

9、forEach()

			//forEach(function(currentValue,index?,array?),thisValue?),对数组的每个元素执行一次给定的函数。
			//currentValue 必选 当前元素的值
			//index 可选 当前元素的索引值
			//array 可选 当前元素属于的数组对象
			//thisValue 可选  执行callback函数时值被用作 this。如果省略或传入null,undefined那么callback函数的this为全局对象
			//元素为基本数据类型的数组,不改变原数组;元素为对象类型的数组,才会改变元素对象对应的值
			var ary91 = [1,2,3,4];
			ary91.forEach(function(item){
				item = item+ 1;
			});
			setTimeout(function(){
				console.log(ary91);//[1,2,3,4]
			},1000)
			
			var ary93 = ['a','b','c'];
			ary93.forEach(function(item){
				item = item+ 'e';
			});
			setTimeout(function(){
				console.log(ary93);//[1,2,3,4]
			},1000)
//			for (var i = 0; i < ary91.length; i++) {
//				ary91[i] = ary91[i] + 1;
//			}//改变原数组
//			console.log(ary91);//[2,3,4,5]
			var ary92 = [
				{name:'甲', age: 18},
				{name:'已', age: 19},
				{name:'丙', age: 20}
			]
			ary92.forEach(function(item){
				item.age +=1;
			});
			setTimeout(function(){
				console.log(ary92);
			},500)
			

10、map()

			//map(function(currentValue,index?,array?),thisValue?)
			//创建一个新数组,该数组中的每个元素是调用一次提供的函数后的返回值。
			var kvArray = [
			   {key: 1, value: 10},
               {key: 2, value: 20},
               {key: 3, value: 30}];
			var reformattedArray = kvArray.map(function(obj) {
			   var rObj = {};
			   rObj[obj.key] = obj.value;
			   return rObj;
			});

11、filter()

			//filter(function(currentValue,index,arr), thisValue)
			//创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
			var ary11 = [1,2,3,4];
			var ary11New = ary11.filter(function(item){
				if(item >= 3){
					return item;
				}
			})
			console.log(ary11New);//[ 3, 4 ]

12、find()

			//find(function(currentValue,index,arr), thisValue),
			//返回数组中满足函数的第一个元素的值。否则返回 undefined。
		    var ary12 = [1,2,3,4];
			var returnValue = ary12.find(function(item,index){
				if(item >= 3){
					var obj = {};
					obj[index] = item;
					return obj;
				}
			})
			console.log(returnValue);//3

13、some()和every()

详见另一篇文章

14、splice()和slice()

详见另一篇文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值