数组对象方法

本文详细介绍了JavaScript ES6中数组的forEach、some、filter方法,以及它们与传统for循环的区别。重点讲解了forEach遍历数组的完整过程,some用于查找满足条件的第一个元素,filter则返回过滤后的数组。同时提到了forEach与some在遇到return时的行为差异。
摘要由CSDN通过智能技术生成

forEach遍历数组

arr.forEach(function(value,index,array){
  //  value 数组每一个元素
  // index  数组元素的索引
  // array当前的数组
  console.log(value,index,array)
})

forEach 数组遍历 相当于for循环

arr.forEach((item,index,arr)=>{
  console.log(item,index,arr)
})

filter过滤数组

返回过滤后的新数组

var newarr = arr.filter(function(value,index,array){
  return value >=10
})
console.log(newarr)

some

some查找数组中是否有满足条件的元素

// 查找满足条件的元素是否存在 ,返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
var arr = [10,30,34,5];
var flag = arr.some(function(value){
  return value < 5
})
console.log(flag);

every

every() 方法用于检测数组所有元素是否都符合指定条件(通过函数提供)。
every() 方法使用指定函数检测数组中的所有元素:

  • 如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测。
  • 如果所有元素都满足条件,则返回 true。
var ages = [32, 33, 16, 40];

function checkAdult(age) {
    return age >= 18;
}
console.log(ages.every(checkAdult));//false

findIndex

findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

当数组中的元素在测试条件时返回 true 时, findIndex() 返回符合条件的元素的索引位置,之后的值不会再调用执行函数。
如果没有符合条件的元素返回 -1

var ages = [3, 10, 18, 20];
 
function checkAdult(age) {
    return age >= 18;
}

var i = ages.findIndex(checkAdult);
console.log(i);  // 2

map

map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

map() 方法按照原始数组元素顺序依次处理元素。

var numbers = [4, 9, 16, 25];

var arr = numbers.map(Math.sqrt);
console.log(arr);//[2,3,4,5]

注意: map() 不会改变原始数组。

forEach和some和filter的区别

var arr  = ['red','green','pink','blue'];
//遍历
arr.forEach(function(value){
  if(value === 'green'){
    console.log("找到了该元素");
    return true;  //在forEach里 return不会终止循环
  }
  console.log(11)
  return false;
})

forEach所有元素都会遍历

arr.some(function(value){
  if(value === 'green'){
    console.log("找到了该元素");
    return true;//在some里面遇到return true 就是终止遍历  迭代效率更高
  }
  console.log(11)
   return false;  
})

some查找到第一个满足条件的元素就终止循环

arr.filter(function(value){
  if(value === 'green'){
    console.log("找到了该元素");
    return true;//在filter里面return 不会终止遍历
  }
  console.log(11)
   return false;  
})

要查找数组中唯一的元素 用some方法更合适

菜鸟教程-数组方法
ES6数组新增的方法

demo:商品查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值