javaScript中的数组篇——常用方法2

forEach():从头至尾遍历数组,为每个元素调用指定的函数,指定的函数可以有三个参数,分别是数组元素、数组索引、数组本身;

var arr = [1,2,3,4,5];
arr.forEach(function(v,i,a){
    console.log("v="+v+" i="+i+" a="+a);
})
//返回结果:
v=1 i=0 a=1,2,3,4,5
v=2 i=1 a=1,2,3,4,5
v=3 i=2 a=1,2,3,4,5
v=4 i=3 a=1,2,3,4,5
v=5 i=4 a=1,2,3,4,5

注意:forEach()方法无法在所有元素都传递给调用函数之前终止遍历,若要提前终止,可把forEach()方法放在一个try块中,并抛出一个异常,如果调用函数在运行时抛出forEach.break异常,遍历将终止。

map():将调用数组的每个元素传递给指定的函数,并返回一个新数组,数组元素是调用指定函数的返回值;

var data = [1,2,3,4,5];
var b = data.map(function(x){
    return x*x;
})
console.log(b);
//返回结果:[1, 4, 9, 16, 25]

注意:原始数组不会受影响,如果原始数组是稀疏数组,调用map()方法返回的数组也是稀疏数组,数组的length属性两者是相同的。

filter():将数组的每个元素调用指定函数进行逻辑判断,指定函数会返回true或false,若返回的是true,对应的数组元素将被添加到返回的新数组中

var data = [1,2,3,4,5];
var result = data.filter(function(v){
    return v<4
})
console.log(result);
//返回结果: [1, 2, 3];data数组的5个元素分别于4进行比较,如果小于4则返回true,并添加到返回的result数组中

注意:若原数组是稀疏数组,调用filter()方法将跳过那些稀疏的元素,返回的是稠密数组。

every()与some():对数组元素应用指定的函数进行逻辑判断,返回true或false;
every()方法在当且仅当所有的数组元素调用判定函数都返回true时,才返回true,若判断过程中出现false的情况,则立即停止判定,并直接返回false;
some()方法当数组中至少有一个元素调用指定函数返回true时,就立即返回true,并且当且仅当在所有元素调用指定函数时返回false,才返回false。

var data = [1,2,3,4,5];
var result = data.every(function(v){
    return v<2;
})
console.log(result);
//返回结果: false;数组元素中只有data[0]比2小,所以返回false。

var data = [1,2,3,4,5];
var result = data.every(function(v){
    return v<6;
})
console.log(result);
//返回结果:true;数组元素中所有元素都比6小,所以返回true。
var data = [1,2,3,4,5];
var result = data.some(function(v){
    return v<2;
})
console.log(result);
//返回结果:true
var data = [1,2,3,4,5];
var result = data.some(function(v){
    return v<6;
})
console.log(result);
//返回结果:true
var data = [1,2,3,4,5];
var result = data.some(function(v){
    return v==0;
})
console.log(result);
//返回结果:false

indexOf()与lastIndexOf() :对整个数组进行搜索指定的值,返回找到第一个与指定值相同的元素的索引或者如果没有找到就返回-1,与字符串的indexOf和lastIndexOf()方法功能类似
上述方法可以接收两个参数,第一个是要搜索的值,第二个为搜索的起始位置,起始位置可以为负值;indexOf是从数组头到尾开始搜索,lastIndexO则是从数组尾部开始搜索。

var data = [1,2,3,4,5];
var result = data.indexOf(2);
console.log(result);
//返回结果: 1;数组data[1]与2一样,故返回1,注意是数组的索引值。
var data = [1,2,3,4,5];
var result = data.indexOf(6);
console.log(result);
//返回结果:-1;在数组中没有搜索到6,故返回-1var data = [1,2,3,4,5];
var result = data.lastIndexOf(4);
console.log(result);
//返回结果: 3
var data = [1,2,3,4,5];
var result = data.lastIndexOf(6);
console.log(result);
//返回结果: -1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值