JS中数组的遍历、判断、筛选处理怎么实现
Admin 2022-09-05 群英技术资讯 651 次浏览
这里先给出一个数组(以下例子通用):
var arr = [1,-2,3,4,-5];
然后我要做事情的就是,将数组中的每一项翻倍。
arr.forEach(function(item,index,array){
array[index] = item * 2;
});
console.log(arr); // [2,-4,6,8,-10]
可以看到,forEach()可以传入一个匿名函数作为参数,而该匿名函数有含有三个参数,其依次代表数组遍历时的当前元素item,数组遍历时的当前元素的索引index,以及正在遍历的数组array。有了这三个参数,可以方便我们做很多事情,比如说示例当中将每一项数组元素翻倍,这时需要用到第一个参数item。但是,仅仅只是将item乘以2可不行,我们还得将其赋值给原来的数组,这时我们就得用到后面两个参数index和array。
根据上述可知,array[index]是全等于item的。
arr.forEach(function(item,index,array){
console.log(array[index] === item); // true
});
var newArr = arr.map(function(item,index,array){
return item * 2;
});
console.log(newArr); // [2,-4,6,8,-10]
可以看到,该方法与forEach()的功能类似,只不过map()具有返回值,会返回一个新的数组,这样处理数组后也不会影响到原有数组。
var isEvery = arr.every(function(item,index,array){
return item > 0;
});
console.log(isEvery); // false
可以看到,示例中是要判断数组arr中的元素是否都为正数,很显然不是,所以该方法最终返回false。
var isSome = arr.some(function(item,index,array){
return item < 0;
});
console.log(isSome); // true
可以看到,该方法与every()类似,示例中是要判断数组arr中是否存在负数元素,很显然存在,所以该方法最终返回true。
var minus = arr.filter(function(item,index,array){
return item < 0;
});
console.log(minus); // [-2, -5]
可以看到,示例中是要筛选出数组arr中的所有负数,所以该方法最终返回一个筛选后的新数组[-2, -5]。
补充: 以上五大方法除了传递一个匿名函数作为参数之外,还可以传第二个参数,该参数用于指定匿名函数内的this指向,例如:
// 只传一个匿名函数
arr.forEach(function(item,index,array){
console.log(this); // window
});
// 传两个参数
arr.forEach(function(item,index,array){
console.log(this); // [1, -2, 3, 4, -5]
},arr);
兼容性: 由于以上方法均属ES5方法,所以IE8及其以下浏览器均不兼容。
补充小结:
map():有返回值,可以return出来
forEach():没有返回值
filter():返回一个符合func条件的元素数组(并没有改变原数组)
some():返回一个boolean,判断是否有元素是否符合func条件(有一个就行)(并没有改变原数组)
every():返回一个boolean,判断每个元素是否符合func条件(所有都判断)(并没有改变原数组)
① forEach()无返回值,map()和filter()返回新数组,every()和some()返回布尔值
② 匿名函数中this指向默认为window,可通过传第二参数来更改之
③ 五种遍历方法均为ES5方法
到此这篇关于JS中forEach()、map()、every()、some()和filter()用法的文章就介绍到这了!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
本篇文章给大家带来了JavaScript中关于全局函数的相关知识,JavaScript中的全局函数有很多,下面我们一起来看一下应该怎样使用,希望对大家有帮助。
这篇文章主要介绍了js 数组 fill() 的填充方法,初始化数组的方法,但是初始化数组之后,数组中的每一项元素默认为 empty 空位占位,如何对数组这些空位添加默认的元素,ES6提供了 fill() 方法实现这一操作。本文总结数组 fill() 方法的详细使用,需要的朋友可以参考一下
JS使用canvas绘制旋转风车动画,下文有实例供大家参考,对大家了解操作过程或相关知识有一定的帮助,而且实用性强,希望这篇文章能帮助大家,下面我们一起来了解看看吧。
这篇文章主要为大家详细介绍了原生JS实现滑动按钮效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本篇文章给大家带来了关于JavaScript的相关知识,其中主要介绍了关于迭代器的相关问题,迭代就是指可以从一个数据集中按照一定的顺序,不断取出数据的过程,下面一起来看一下,希望对大家有帮助。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008