【面向JS--数组遍历】

来源:互联网 发布:有没有哪种编程的实例 编辑:程序博客网 时间:2024/05/21 05:05

数组遍历:循环得到数组中的每一个元素。

最基本的数组遍历就是循环结构,for循环 while循环等。此处只说一说为方便我们开发而那些内置的方法:

1、forEach

缺点:不能中断循环,没有break/continue方法。

var arr=[1,2,3,4,5,6];arr.forEach(function(value,index){    if(index < 5){        console.log(index+':'+value)    }})

2、some

//some 方法在return值为true时终止遍历var arr=["java","lua","go","ruby"];arr.some(function(value,index){    console.log(index+" : "+value)    return value==="go"})//打印结果//0 : java//1 : lua//2 : go//true

3、every

//every方法是当return返回值为false时退出循环var arr=["java","lua","go","ruby"];arr.every(function(value,index){    console.log(index+" : "+value)    return value.length>3})//打印结果//0 : java//1 : lua//false

4、map

操作数组中的每个元素,将每个元素操作后的结构封装进一个新数组。

var arr=[1,3,5,7]var newArr=arr.map(function(x){    return 0.5*x+3})

5、filter

返回符合要求的元素

//取出数组中大于10的数var arr=[1,5,17,23,9,12,10]var newArr=arr.filter(function(ele){    return ele>10})//print result://newArr=[17,23,12]

6、reduce

educe()接受一个方法作为回调,是一个数组逐项处理方法

arr.reduce(callback[previousValue,currentValue],initialValue)

其中initialValue作为第一次调用时传给previousValue的值

previousValue 为上一次callback的返回值,所以适用于递归

var arr=[1,2,3,4]var sum=arr.reduce(function(pre,cur){    return pre + cur; }) //10var multiplicative=arr.reduce(function(pre,cur){    return pre * cur})//24var max=arr.reduce(function(pre,cur){    return pre>cur?pre:cur})//4

7、for - in

for - in 是专门用来循环带有字符串key的可枚举对象的方法(哈希数组,对象)

var obj = {a:1, b:2, c:3};for(var key in obj){    console.log(key+" : "+obj[key])}//a : 1//b : 2//c : 3

8、for-of

这是ES6新提出的循环方法,可以用来循环除了适用于for-in的可枚举对象之外的任何东西。

//数组let arr=["java","lua","go","ruby"];//let es6语法 类似varfor(let ele of arr){    console.log(ele)}//字符串let str="minelab"for(let char of str){    console.log(char)}
原创粉丝点击