ES5 数组方法_es6遍历对象的方法

(1) 2024-08-10 18:23

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
ES5 数组方法_es6遍历对象的方法,希望能够帮助你!!!。

ES5 数组方法

ES5 定义了九个新的数组方法来遍历、映射、过滤、简化和搜索数组。

1.forEach()

forEach()方法从头至尾遍历数组,为每个元素调用指定的函数。三个参数:数组元素、元素的索引和数组本身。

var data = [1, 2, 3, 4, 5] var sum = 0 data.forEach(function(val){ 
    sum += value }) sum // 15 data.forEach(function(v, i, a){ 
    a[i] = v + 1 }) data // [2, 3, 4, 5, 6]

2.map()

map()方法将调用的数组的每个元素传递给指定的函数,并返回一个数组,它包含该函数的返回值。

var a = [1, 2, 3] var b = a.map(function(x){ 
    return x * x }) b // [1, 4, 9]

传递给map的函数应该有返回值。map返回的是新数组,它不修改调用的数组。

3. filter()

filter()方法返回的数组元素是调用数组的一个子集。传递的函数是用来逻辑判定的:该函数返回true或false。如果返回值是true,那么传递给判定函数的元素就是这个子集的成员,它将被加到一个作为返回值的数组中。

var a = [5,4,3,2,1] var smallvalues = a.filter(function(x){ 
    return x < 3 ) smallvalues // [2, 1] var everyother = a.filter(function(x, i){ 
    // x 为每个元素 // i 为改元素的下标 return i % 2 == 0 }) everyother // [5, 3, 1]

4. every()和some()

它们是对数组元素应用指定的函数进行判定,返回true或false

every()

“针对所有”的意思,当且仅当针对数组中所有元素调用判定函数都返回true,它才返回true

var a = [1, 2, 3, 4, 5] a.every(function(x){ 
   return x < 10}) // true a.every(function(x){ 
   return x % 2 === 0}) // false
some()

“存在”的意思,当数组中至少有一个元素调用判定函数返回true,它就返回true;当且仅当数值中所有元素调用判定函数都返回false,它才返回false。

var a = [1, 2, 3, 4, 5] a.some(function(x){ 
   return x % 2 === 0}) // true a.some(isNaN) // false: a不包含非数值元素

注意:一旦every()和some()确认范围什么值它们就会停止遍历数组元素。
some()在判定函数第一次返回true后就返回true,但如果判定函数一直返回false,它将会遍历整个数组。
every()恰好相反:它在判定函数第一次返回false后就返回false,但是如果判定函数一直返回true,它将会遍历整个数组。

5. reduce()和reduceRight()

它们使用指定的函数将数组元素进行组合,生成单个值。

var a = [1, 2, 3, 4, 5] var sum = a.reduce(function(x, y){ 
   return x + y}, 0) // 15 求和 var product = a.reduce(function(x, y){ 
   return x * y}, 1) // 120 求积 var max = a.reduce(function(x, y){ 
   return (x>y)? x: y}) // 5 求最大值

reduce()需要两个参数。第一个是执行化简操作的函数。化简函数的任务就是用某种方法把两个值组合或简化为一个值,并返回简化后的值。第二个参数是可选参数,传递给函数的初始值。
上例中第三次调用reduce()没有指定初始值。它将使用数组的第一个元素作为其初始值。
空数组上,不带初始值参数调用reduce()将导致类型错误异常。如果调用它的时候只有一个值——数组只有一个元素并且没有指定初始值,或者有一个空数组并且指定一个初始值——reduce()只是简单地返回那个值而不会调用化简函数。

和reduceRight()与reduce()一样,不同的是它按照索引从高到低处理数组。

6. indexOf()和lastIndexOf()

它们搜索整个数组中具有给定值的元素,返回找到的第一个元素的索引或者没有找到就返回-1。indexOf()从头至尾搜索,而lastIndexOf()则反向搜索。

a = [0, 1, 2, 1, 0] a.indexOf(1) // 1 a.lastIndexOf(1) // 3 a.indexOf(3) // -1

它们不接受一个函数作为其参数。第一个参数是需要搜索的值,第二个参数是可选的:它指定数组中的一个索引,从那里开始搜索。第二个参数,可以为负数,它代表相对数组末尾的偏移量。
字符串也有indexOf()和lastIndexOf()

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

上一篇

已是最后文章

下一篇

已是最新文章

发表回复