JavaScript学习笔记: 数组迭代方法

使用数组总是会碰到数组的遍历(迭代)操作。说到迭代,可能会立马想起for语句对数组进行迭代。比如需要迭代出下面数组peoples年龄(age)大于30的人名(name)。

var peoples = [
    {
        name: 'Agraj',
        gender:'M',
        age: 29,
        address:
        {
            city: 'Delhi',
            pincode: '110064'
        }
    },
    {
        name: 'Mark',
        gender:'M',
        age: 35,
        address:
        {
            city: 'West Bengal',
            pincode: '220013'
        }
    },
    {
        name: 'Lance',
        gender:'M',
        age: 39,
        address:
        {
            city: 'Chandigarh',
            pincode: '201201'
        }
    },
    {
        name: 'Vikas',
        gender:'M',
        age: 21,
        address:
        {
            city: 'Noida',
            pincode: '201301'
        }
    },
    {
        name: 'Kanika',
        gender:'F',
        age: 21,
        address:
        {
            city: 'Noida',
            pincode: '201301'
        }
    }
];

for (var i = 0; i < peoples.length; i++ ) {
    if (peoples[i].age > 30) {
        console.log(peoples[i].name + ':' + peoples[i].age);
    }
}

Chrome浏览器输出的结果:

Mark:35
Lance:39

其实ES5为数组定义了五个迭代方法:

  • forEach():没有返回值,只是针对每个数组项调用指定的函数(callbackfn)
  • every(): 返回一个布尔值(truefalse),判断每个数组项是否符合指定函数的条件,符合为true,反之为false
  • some(): 返回一个布尔值(true或false),判断每个数组项是否符合指定函数的条件,只要有任何一项返回为true,就会返回true
  • filter(): 每个数组项调用指定的函数,条件为true的将返到一个新数组中
  • map(): 每个数组项调用指定的函数,返回每次函数调用的结果组成一个新数组

这五个数组迭代的方法中,其中forEach()every()some()方法不生成一个新数组,而filter()map()方法将会生成一个新数组(符合条件)。并且这些方法都会调用指定的函数callbackfn。回调函数callbackfn语法如下:

function callbackfn (value, index, array) {...}

可以使用三个参数来声明回调函数callbackfn:

  • value:
剩余80%内容付费后可查看
* 请输入阅读码(忘记阅读码?

如需转载,烦请注明出处:https://www.w3cplus.com/javascript/array-part-7.html

如果文章中有不对之处,烦请各位大神拍正。如果你觉得这篇文章对你有所帮助,打个赏,让我有更大的动力去创作。(^_^)。看完了?还不过瘾?点击向作者提问!

赏杯咖啡,鼓励他创作更多优质内容!
返回顶部