ES5数组操作以及遍历迭代方法

写这篇博文是因为最近学习Vue的时候发现自己忘记了好多JS的数组操作方法和一些数组遍历的迭代方法,下面将一下我自己最近经常用得到的方法,总结一下。

栈方法

这个所谓的栈方法就是类似于数据结构的方法,就是后进先出。也就是最新添加的数据最先被移除。这里介绍的ES5中的方法,只是类似栈方法而已。

push

这个方法可以接收任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度。

var color =["red","green"];
var num = color.push("black");
console.log(color);// ["red","green","black"]
console.log(num);//  3
pop

这个方法从数组的末尾移除一项,减少数组的length的值,然后返回被移除的项

var color =["red","green","black"];
var  lastnode = color.pop();
console.log(lastnode);   // black
shift

这个方法正好与pop方法相反,这个方法是移除数组的第一项,减少数组的length的值,然后返回被移除的项。

var color =["red","green","black"];
var  fristnode = color.shift();
console.log(fristnode); // red
unshift

这个方法就是跟push方法一样了,接收任意量的参数,并逐个添加到数组的第一项,并返回修改后数组的长度。

var color =["red","green"];
var num = color.unshift("black");
console.log(color);// ["black","red","green"]
console.log(num);//  3

位置方法

indexof 和 lastindexof

这两个方法都接收两个参数:(要查找的项,查找的起始点索引)。第二参数是可选的,并不是必须要写的参数,事实上更多时候是用indexof来匹配字符串。indexof是从头找到尾,找得到的话就返回项所在的位置的索引值,找不到的话就返回 -1 。lastindexof就不用说了,正好相反而已。这里提下ES6新增的两个方法,findfindindex也是非常好用的方法哦,感兴趣的可以去百度一下。

var numbers =[1,2,3,4,5,4,3,2,1];
console.log(numbers.indexOf(4)) // 3  第一个符合条件的索引值
console.log(numbers.lastindexOf(4)) // 5  这是第二4的索引值
console.log(numbers.indexOf(4,4)) // 5  起始点是数字5,所以返回的是第二个4的索引值
console.log(numbers.lastindexOf(4,4))// 3   起始点是数字5,往前找,所以是第一个4的索引值

迭代方法

这个迭代方法基本是用来遍历数组的时候用的,ES5提供了5个迭代方法用来遍历数组。

every

对数组的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

some

对数组的每一项运行给定函数,如果该函数对任意一项返回true,则返回true。

filter

对数组的每一项运行给定函数,返回该方法会返回true的项组成的函数。

map

对数组的每一项运行给定函数,返回每次函数调用的结果组成的数组。

forEach

对数组的每一项运行给定函数,这个方法没有返回值。

代码演示

首先演示两个相近的方法,分别是 every 和 some

			var numbers =[1,2,3,4,5,4,3,2,1];
			var everyresult=numbers.every(function(item,index,array){
				console.log(array); //[1,2,3,4,5,4,3,2,1];
				return (item>2);
			});
			
			var someresult=numbers.some(function(item,index,array){
				console.log(array); //[1,2,3,4,5,4,3,2,1];
				return (item>2);
			});
			
			console.log(everyresult); //false
			console.log(someresult); // true

先说说这三个参数,第一个参数就数组里的每一项,第二个参数是每一项的索引值,第三个参数从输出的情况来看就是本身的数组了。every 与 some 的区别就在于全部项任意一项

filter

var numbers =[1,2,3,4,5,4,3,2,1];
var filterresult=numbers.filter(function(item,index,array){
	return (item>2);
});
console.log(filterresult);  // [3,4,5,4,3]

这个方法返回符合条件的项组成的数组,这里的条件就是大于2所以就将所有符合条件的项组合成了一个数组返回了。

map

var numbers =[1,2,3,4,5,4,3,2,1];
var mapresult=numbers.map(function(item,index,array){
	return item * 2;
});
console.log(mapresult); // [2,4,6,8,10,8,6,4,2]

这里就是在原来的项中各自执行了一个条件,就是每一项都乘以2,返回的数组就是操作后的项组成的数组。

forEach
这个方法应该来说就是最常用的,因为这个方法就是用来遍历数组,比如遍历所有 li 添加点击事件,这里就不放例子了。因为这个实在是太常用了,必须掌握的一个方法。

暂时先更新这些,之后学习Vue的时候遇到的常用方法,我将会记下来,后续添加到这个文章里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值