Javascript数组的5种迭代方法

#Javascript数组的5种迭代方法

数组当中定义了5个迭代方法,传入这些方法中的函数会接受三个参数,数组项的值,该项在数组的位置,和数组对象本身,以下是5个迭代方法的作用。

1、every方法:

对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。

let arr1 = [1,2,3,4,5,6];
let arr2 = [-1,-2,-3,-4,-5,-6];
let every1 = arr1.every((item,index,arr)=>{
    return item>0
})
let every2 = arr2.every((item,index,arr)=>{
    return item>0
})
console.log(every1,every2);//true,false

2、filter方法

对数组中的每一项运行给定函数,返回该函数返回true的项组成的数字

let arr1 = [-1,-2,-3,4,5,6];
let arr2 = [1,2,3,-4,-5,-6];
let filter1 = arr1.filter(item=>{
    return item>0
})
let filter2 = arr2.filter((item)=>{
    return item<0
})
console.log(filter1,filter2);//[4,5,6],[-4,-5,-6]

3、some方法

对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

let arr1 = [1,2,3,4,5,6];
let arr2 = [1,2,3,-4,-5,-6];
let some1= arr1.some(item=>{
    return item>0
})
let some2 = arr2.some((item)=>{
    return item>0
})
console.log(some1,some2);//true,true

4、forEach方法

对数组中的每一项运行给定函数,这个方法没有返回值。

forEach无法遍历对象

forEach无法在IE中使用,只是在firefox和chrome中实现了该方法

let arr1 = [1,2,3,4,5,6];
let arr2 = [1,2,3,-4,-5,-6];
let forEach1= arr1.forEach(item=>{
    return item++
})
let forEach2 = arr2.forEach((item)=>{
    return item++
})
console.log(forEach1,forEach2);//undefined,undefined

5、map方法

对数组中的每一项运行给定函数,返回每次调用的结果组成的数组。

let arr1 = [1,2,3,4,5,6];
let arr2 = [-1,-2,-3,-4,-5,-6];
let map1 = arr1.map(item=>{
    return ++item
})
let map2 = arr2.map((item)=>{
    return ++item
})
console.log(map1,map2);//[2, 3, 4, 5, 6, 7] (6) [0, -1, -2, -3, -4, -5];

开发过程中用的比较常用到的就是map,forEach方法,他们是比较相似却也有不小的区别。

主要在于:

1、map方法是有返回值的,而forEach是没有的。

2、IE浏览器不支持forEach方法,所以要兼容IE浏览器的尽量不要使用forEach去遍历。

3、map方法的速度快于forEach。

原文地址:https://www.cnblogs.com/hh1017/p/9452512.html

时间: 2024-10-29 19:11:10

Javascript数组的5种迭代方法的相关文章

JavaScript中数组的5种迭代方法

浏览器兼容情况:IE9+ ES5为数组定义了5个迭代方法.每种方法都接收两个参数.要在每一项上运行的函数和(可选的)运行该函数的作用域对象--影响this的值.//其中(可选的)这个参数暂时未遇到过. 其中,函数都接收三个参数(数组中的每一项.每一项的索引值.数组对象本身). 下面是5中方法的介绍: every() : 对数组中的每一项执行函数,如果每一项都返回 true ,则该方法返回 true. some():     对数组中的每一项执行函数,只要有一项返回了 true ,则该方法返回 t

数组的几种迭代方法和归并方法1

迭代方法: every()  对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true.使用此方法 可确定数组中的所有项是否满足某一条件,类似于&&的含义.   var arr = [1,2,3,4,5,6,7,8]; var everyRes = arr.every(function(item,index,array){ return (item>2); });    alert(everyRes);some()  对数组中的每一项运行给定函数,如果该函数对任

JavaScript数组的三种定义方法

数组的定义: 1 <script type="text/javascript"> 2 // <!--声明数组--> 3 // 1.先声明数组长度,后进行赋值 4 var arr=new Array(5); 5 document.write("数组长度为:"+arr.length+"<br/>"); 6 var num=4; 7 for(var i=0;i<arr.length;i++){ 8 num=nu

JavaScript数组的循环和迭代

JavaScript数组的循环和迭代 循环 for循环 普通版for循环 var arr = ["a","b","c","d"]; for (let i = 0; i < arr.length; i++){ console.log(arr[i]); .//a b c d } 优化版for循环 var arr = ["a","b","c","d"

JavaScript 面向对象的几种实现方法

JavaScript面向对象的几种实现方法 工厂模式 1 function createBlog(name, url) { 2 var o = new Object(); 3 o.name = name; 4 o.url = url; 5 o.sayUrl= function() { 6 alert(this.url); 7 } 8 return o; 9 } 10 var blog1 = createBlog('wuyuchang', 'http://www.jb51.net/'); 优点:实

数组的5个迭代方法

数组的5个迭代方法every()对数组中的每一项运行给定的函数,如果该函数对每一项都返回true,则返回true.some()对数组中的每一项运行给定的函数,如果该函数对任一项返回true,则返回true.filter()对数组中的每一项运行给定的函数,返回该函数会返回true的项组成的数组.map()对数组中的每一项运行给定的函数,返回每次函数调用的结果组成的数组.forEach()对数组中的每一项运行给定的函数,这个方法没有返回值. 标注:参数是个函数. var arr=[2,3,2,4,2

一张表说明javascript 数组的几个重要方法

方法名 功能 示例 栈方法和队列方法 push() 1.和pop() 方法一块可以实现让数组像栈一样"后进先出": 2.和shift()方法一块可以实现让数组像队列一样"先进先出": 3.push()方法可以接受任意数量的参数,把它们逐个添加到数组的末尾,同时增加数组的 length值. var colors = ["red","green"]; colors.push("blue",["yell

javascript数组的实例属性(方法)

javascript的所有数组实例对象,除了可以给自己增删属性之外:都会从Array.prototype继承属性(方法).修改Array的原型会影响所有的数组实例. 数组实例的属性: Array.prototype.constructor: 所有数组都继承了这个属性,它的只是''Array'',表明了所有的数组都是有Array构造出来的. Array.prototype.length: 因为Array.prototype也是个数组,所以也有length属性,这个值为0,因为它是个空数组.这个也不

Array 的五种迭代方法 -----every() /filter() /forEach() /map() /some()

ES5定义了五个迭代方法,每个方法都接收两个参数:要在每一项上运行的函数和运行该函数的作用域对象(可选的),作用域对象将影响this的值.传入这些方法中的函数会接收三个参数:数组的项的值.该项在数组中的位置和数组对象本身. 1.every() 和 some() every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true. some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true. every()和some()很相似,他们都用于