有关数组的迭代方法every(),some(),filter(),map(),forEach()

有关数组的迭代方法every(),some(),filter(),map(),forEach()

  1. 迭代方法的共同点是:都是对数组中的每一元素运行给定的函数来或判断返回结果或遍历元素(特指forEach方法)
  2. every()和some()可以对比使用
    2-1:arr.every()是判断数组中的元素是否都满足给定的条件,全部满足才会返回true;而arr.some()则是判断数组中是否有元素满足给定的条件,只要有一个元素满足即返回true;
    2-2:arr.every()的使用和封装,如下
   var arr = [12, 45, 23, 25, 28, 20];
/* var result = arr.every(function (item, index, arr) {
    console.log(item, index, arr, '------'); // 12 0 [ 12, 45, 23, 25, 28, 20 ] ------
    //item-->是数组中的每一个元素
	//index-->是数组中每一个元素的下标
	//arr-->数组
    return item >= 12;
});
console.log(result); */

Array.prototype.myEvery = function(fun,thisObj){
    let result = true
    for(var i=0;i<this.length;i++){
        var res = fun.call(thisObj,this[i],i,this);
		if(!res){
			result = res;
			break;
		}
    }
    return result
}
var result = arr.myEvery(function (item, index, arr) {
    return item >= 12;
});
console.log(result);

2-3:同样的,arr.some()的使用和封装,和every很是相似,如下

var arr = [12, 45, 23, 25, 28, 20];
/* var result = arr.some(function (item, index, arr) {
    return item >= 47;
});
console.log(result); // false
 */
Array.prototype.mySome = function(fun,thisObj){
    let result = false
    for(var i=0;i<this.length;i++){
        var res = fun.call(thisObj,this[i],i,this);
		if(res){
			result = true;
			break;
		}
    }
    return result
}
var result = arr.mySome(function (item, index, arr) {
    return item >= 47;
});
console.log(result);
  1. arr.filter() 数组过滤,返回的是满足给定条件的元素组成的数组,也要一个封装,如下:
var arr = [12, 45, 23, 25, 28, 20];
/* var result = arr.filter(function(item,index,arr){
	return item>23;
});
console.log(result); // [ 45, 25, 28 ] */

Array.prototype.myFilter = function(fun,thisObj){
    let result = false
    let temp = []
    for(var i=0;i<this.length;i++){
        var res = fun.call(thisObj,this[i],i,this);
		if(res){
            result = true;
            temp.push(this[i])
		}
    }
    return temp
}
var result = arr.myFilter(function (item, index, arr) {
    return item > 23;
});
console.log(result);
  1. arr.map() 数组的映射,返回每次函数调用的结果组成的数组/映射数组内元素的内容,返回新数组,更加简单直白的说就是返回对数组内的同一元素执行一样的操作而得到的新结果;方法封装和前面三个都很相似,就简单的看一下运行的结果,如下:
var arr = [12, 45, 23, 25, 28, 20];
var result = arr.map(function(item,index,arr){
	return item*2;
});
console.log(result); // [ 24, 90, 46, 50, 56, 40 ]
console.log(arr); // [ 12, 45, 23, 25, 28, 20 ]
  1. map() 也就可以获取数组中对象的指定属性的值所组成的数组,用点方法,如下:
var stus = [{
	name:'tom',
	age:12
},{
	name:'lisi',
	age:20
},{
	name:'larry',
	age:17
}];
//获取该数组内的所有人的名字
var result = stus.map(function(item){
	return item.name;
});
console.log(result); // [ 'tom', 'lisi', 'larry' ]
  1. arr.forEach() 数组的遍历,注意它没有返回值,就是遍历数组,将它遍历出来,拿到数组的每一项
var stus = [{
	name:'tom',
	age:12
},{
	name:'lisi',
	age:20
},{
	name:'larry',
	age:17
}];
stus.forEach(function(item,index,arr){
	console.log(item);
});
var arr = [12, 45, 23, 25, 28, 20];
arr.forEach(function(item){
    console.log(item)
})
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript中有多种方法可以遍历数组,其中常用的有mapforEachfilter。 1. map方法map方法会对数组中的每个元素调用一个回调函数,并返回一个新的数组,新数组的元素是原始数组中每个元素经过回调函数处理后的结果。例如,我们有一个数组[1, 2, 3],我们可以使用map方法将每个元素乘以2并返回一个新的数组[2, 4, 6]。map方法不会改变原始数组。 2. forEach方法forEach方法会对数组中的每个元素调用一个回调函数,但它不会返回任何内容。通常,forEach方法用于执行一些操作而不需要返回结果,例如打印数组中的每个元素。与map方法不同,forEach方法无法返回修改后的数组。 3. filter方法filter方法会对数组中的每个元素调用一个回调函数,并返回一个新的数组,新数组的元素是回调函数返回值为true的元素。例如,我们有一个数组[1, 2, 3, 4, 5],我们可以使用filter方法筛选出所有大于2的元素并返回一个新的数组[3, 4, 5]。与map方法类似,filter方法也不会改变原始数组。 这三种方法在遍历数组时具有不同的用途。map方法可以用于对数组中的每个元素进行转换或操作,并返回一个新的数组forEach方法用于执行一些操作而不关心返回值。filter方法用于根据指定的条件筛选出符合条件的元素,并返回一个新的数组。根据具体情况,我们可以选择合适的方法来遍历数组

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值