js-es5-数组常用方法(迭代方法、栈方法、队列方法)

es5-数组常用方法(迭代方法、栈方法、队列方法)

一、迭代方法

迭代(遍历)方法:forEach()、map()、filter()、some()、every()

1.数组方法forEach遍历数组 没有返回值

//通常用来渲染全部数据
var arr = [1, 2, 3];
var sum = 0;
arr.forEach(function(value, index, array) {
//参数一是:数组元素  每一遍打印一个元素
console.log('每个数组元素' + value);
//参数二是:数组元素的索引 每一遍打印一个索引
console.log('每个数组元素的索引号' + index);
//参数三是:当前的数组 整个数组
console.log('数组本身' + array);
 //遍历数值相加
sum += value;
 })
 console.log(sum);//6
//相当于数组遍历的 for循环 没有返回值

2.map()方法

与forEach类似,遍历,有返回值

 var arr = [10, 30, 4];
 var map1 = arr.map(function(value,index,array) {
    //参数一是:数组元素
     //参数二是:数组元素的索引
     //参数三是:当前的数组
     return value*2
  });
  
console.log(map1);//返回值是由每次循环调用的返回值所组成的数组;
//[20, 60, 8]

3.filter() 筛选数组(过滤数组)

//常用于选择功能 按条件查询来筛选 比如价格小于1000等
var arr = [12, 66, 4, 88, 3, 7];
  var newArr = arr.filter(function(value, index,array) {
  	 //参数一是:数组元素
     //参数二是:数组元素的索引
     //参数三是:当前的数组
    //return筛选条件
     return value >= 20;
  });
  console.log(newArr);//[66,88] //返回值是一个新数组

4.some()

查找数组中满足条件的元素 返回布尔值

some 查找数组中是否有满足条件的元素 
 var arr = [10, 30, 4];
 var arr2 = [];
 var flag = arr.some(function(value,index,array) {
    //参数一是:数组元素
     //参数二是:数组元素的索引
     //参数三是:当前的数组
     //1 return value < 3; 直接查询
   //2 判断查询
   if (value.pname === product.value) {
     arr2.push(value);
     return true; // return 后面必须写true  
   }
  });
console.log(flag);//false返回值是布尔值,只要查找到满足条件的一个元素就立马终止循环
console.log(arr2);

5.every() 与some()类似

判断数组中的元素是否符合某个条件
如果数组中的所有元素都符合条件 返回true
相反只要有一个不符合就返回false

 var arr = [10, 30, 4];
 var flag = arr.every(function(value,index,array) {
    //参数一是:数组元素
     //参数二是:数组元素的索引
     //参数三是:当前的数组
     return value < 20;
  });
console.log(flag);//false返回值是布尔值,没有全部满足条件

注:

  1. some一般配合push使用 将查询到符合条件的单个数据push到一个新数组中,应为some()方法只进行判断true与false 不返回新数组
  2. forEach()、filter() 中不会因为return而停止遍历 所以有时候查询的时候some效率高 按需使用

二、栈方法

1.push()与pop()

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

pop()方法从数组的末尾移除最后一项,减少数组的长度,并返回被移除的项。

var colors = new Array();	
var count = colors.push("red","green");  //往数组中插入2项	
alert(count);  // 2	
count = colors.push("black");   //再插入另外一项	
alert(count);   // 3	
var item = color.pop();   //弹出栈顶项	
alert(item);    // black	
alert(colors.length);   // 2

三、队列方法shift()和push() / unshift()与pop()

1.shift()和push()

shift()移除数组中的第一项并返回该项,同时将数组长度减 1。

结合使用shift()和push() 方法,可以像使用队列一样使用数组。

//先进先出
var colors = new Array(); //创建一个数组
var count = colors.push("red","green"); //推入两项
alert(count)//2

count = colors.push("black"); //推入另一项
alert(count)//3

var item = colors.shift(); //取得第一项
alert(item); //"red"
alert(colors.length)//2

2.unshift()与pop()

unshift() 和 pop() 方法,可以从相反的方向来模拟队列,即在数组的前端添加项,从数组末端移除项。

//后进后出
var colors = new Array(); //创建一个数组
var count = colors.unshift("red","green"); //推入两项
alert(count)//2

count = colors.unshift("black"); //推入另一项
alert(count)//3

var item = colors.pop(); //取得第一项
alert(item); //"green"
alert(colors.length)//2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值